C++ - 使用system()进行Windows命令

Son*_*lor 7 c++ windows windows-xp

我是C++的新手,我读过并听说使用系统调用是不好的做法. 那么如果你需要使用system()来运行像ipconfig或的Windows命令呢netstat?它仍然是邪恶的还是被认为是system()的可接受用途?我正在编写一个程序来收集有关系统的各种信息,我多次使用system()并将输出传输到文本文件中以供查看.

Ree*_*sey 5

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

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