C++ - 对 Windows 命令使用 system()

标签 c++ windows windows-xp

我是 C++ 的新手,我有 read听说using system calls is bad practice.那么,如果您需要使用 system() 来运行 Windows 命令,如 ipconfignetstat,该怎么办。它仍然是邪恶的还是被认为是可以接受的 system() 用法?我正在编写一个程序来收集有关系统的各种信息,我多次使用 system() 并将输出通过管道传输到文本文件中以供查看。

最佳答案

您进行的大多数调用都具有可以直接使用的 Windows API 调用。理想情况下,您只需调用适当的 Windows API 调用,而不是启动进程、写入文件,然后解析文件。

也就是说,在 Windows 上,CreateProcess将启动一个进程并为您提供比调用 system 更多的控制权。这包括使用 STARTUPINFO为流程标准输出流提供您自己的HANDLE,这意味着您可以直接从流程中读取而无需写入文件。

关于C++ - 对 Windows 命令使用 system(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18064563/

相关文章:

C++ 方法重载 : base and derived parameters

c++ - cin >> x 错误时的计算结果是什么?

c++ - XP 滚动条在 Windows7/Vista 中乱七八糟

windows - Par 段落格式化程序 - 如何在 Windows 命令行中使用它

Java Web Start - 多个快捷方式

windows-7 - 为什么控制台输出这么慢?

c++ - 字符串太长时出现 AccessViolationException (C++)

c++ - what(): std::bad_alloc - 我的内存力不足了吗?

C 编程 undefined reference `WinMain@16'

windows - 如何将文本文件的内容加载到批处理文件变量中?