为了账号安全,请及时绑定邮箱和手机立即绑定

在Win32 API中等效于Posix popen()是什么?

在Win32 API中等效于Posix popen()是什么?

蝴蝶刀刀 2019-08-19 16:49:44
在Win32 API中等效于Posix popen()是什么?是否与Win32 API中的Linux / Unix stdio.h popen()函数大致相同?如果是这样,我在哪里可以找到它?编辑:我需要知道这个来修补D标准库中的遗漏。任何答案必须只使用标准的Win32 API,没有特定于MSVC的功能。另外,如果存在的话,我更喜欢低级别的东西。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

它比_popenJason链接的运行时库中的函数更低级,但仅使用Win32 API。


查看完整回答
反对 回复 2019-08-19
?
隔江千里

TA贡献1906条经验 获得超10个赞

可悲的是,这并不是特别容易。

您需要使用win32函数(CreatePipe)创建管道,然后通常需要复制您给予子进程的管道末尾(DuplicateHandle)以允许它继承,否则它将不会和因此无法使用。

然后你需要使用CreateProcess创建一个进程(它需要很多结构指针,包括一个STARTUPINFO),并在STARTUPINFO中传递你复制为stdout的句柄。

然后你可以从管道的读取端(ReadFile等)读取,直到你到达eof,然后你需要通过关闭所有各种win32句柄来清理。


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 772 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信