【问题标题】:C execute command windowsC 执行命令窗口
【发布时间】:2013-01-11 04:28:52
【问题描述】:

有什么方法可以在 Windows 中使用 C 执行命令,并在不使用 System 命令的情况下获取输出? win32 api中有没有函数?

【问题讨论】:

    标签: c windows command execute


    【解决方案1】:

    answer 到这个问题What is the equivalent to Posix popen() in the Win32 API? 有一个指向这篇 MSDN 文章 Creating a Child Process with Redirected Input and Output 的链接,它或多或少地描述了如何使用 Win32 调用构建 popen 功能

    本主题中的示例演示如何使用控制台进程中的 CreateProcess 函数创建子进程。它还演示了一种使用匿名管道重定向子进程的标准输入和输出句柄的技术。请注意,命名管道也可用于重定向进程 I/O。

    【讨论】:

      【解决方案2】:

      ShellExecute()_spawn() 函数及其变体。 MSDN 是查看的地方。

      【讨论】:

        【解决方案3】:

        看看_popen 函数。它适用于控制台子系统可执行文件。

        如果您的目标是 Windows 子系统,则有更复杂的基于 CreateProcess 的解决方案。

        【讨论】:

        • 在 Windows 中!?你确定吗?
        • @Clifford 好吧,控制台子系统不会使它成为非 Windows。编辑提及 CreateProcess。
        • @AntonKovalenko:它与控制台/GUI 无关,而是popen() 是 Windows 原生 API 不支持的 Unix System V 函数。
        • @AntonKovalenko:我收回这一点,但要注意:微软的 CRT 库支持 _popen() 而不是 popen()
        • 啊,你比我先到了!
        猜你喜欢
        • 2014-05-12
        • 1970-01-01
        • 2020-10-21
        • 2018-05-10
        • 2011-08-13
        • 1970-01-01
        • 2018-03-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多