在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 关注
 - 828 浏览
 
添加回答
举报
0/150
	提交
		取消
	