在Win32 API中等效于Posix popen()是什么?是否与Win32 API中的Linux / Unix stdio.h popen()函数大致相同?如果是这样,我在哪里可以找到它?编辑:我需要知道这个来修补D标准库中的遗漏。任何答案必须只使用标准的Win32 API,没有特定于MSVC的功能。另外,如果存在的话,我更喜欢低级别的东西。
3 回答
隔江千里
TA贡献1906条经验 获得超10个赞
可悲的是,这并不是特别容易。
您需要使用win32函数(CreatePipe)创建管道,然后通常需要复制您给予子进程的管道末尾(DuplicateHandle)以允许它继承,否则它将不会和因此无法使用。
然后你需要使用CreateProcess创建一个进程(它需要很多结构指针,包括一个STARTUPINFO),并在STARTUPINFO中传递你复制为stdout的句柄。
然后你可以从管道的读取端(ReadFile等)读取,直到你到达eof,然后你需要通过关闭所有各种win32句柄来清理。
- 3 回答
- 0 关注
- 772 浏览
添加回答
举报
0/150
提交
取消