在标准C中没有类似的东西,但通常,为了与POSIX兼容,编译器实现popen(_popen在VC++中),它启动一个命令(就像它一样system)并返回一个FILE *你要求的流(你可以请求stdout,如果你想要读取输出或 stdin,如果你想给程序一些输入).
一旦你有了FILE *,你可以用通常的fread/ fscanf/ ... 来阅读它,就像你在普通文件上那样.
如果你想同时拥有输入和输出重定向的东西开始变得有点复杂,因为Windows编译器通常会有类似POSIX的东西pipe,但它并不完全兼容(主要是因为Windows进程创建模型不同).
在这种情况下(并且在任何情况下,您需要对启动的进程进行更多控制而不是普通的popen给出)我只需要采用"真实"的方式在Windows上执行IO重定向,即使用CreateProcess和适当的选项; 看这里.
| 归档时间: |
|
| 查看次数: |
2362 次 |
| 最近记录: |