在Windows上确定从调用popen的PID
Determining the PID from a call to popen on Windows
如果我试图在管道运行时关闭管道,它将等待命令完成。有些命令永远运行,导致它无限冻结。我设法想出的唯一解决方案是确定PID,终止进程,然后关闭管道。但我还没有找到一种方法来确定PID安全。
FILE* pipe;
wchar_t* command;
pipe = _wpopen(command, L"r");
... // determine the PID and TerminateProcess
pclose(pipe);
那么我如何确定从调用popen的PID ?
我不认为有一个直接的方法来获得pid
。使用CreateToolhelp32Snapshot
或EnumProcesses
来获得pids
的列表,并选择您的。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 调用专用模板时出错"no matching function for call to [...]"
- 选择要调用的构造函数
- C++为什么尽管我调用了void函数,它却不起作用
- 构造函数正在调用一个使用当前类类型的函数
- 变量没有改变?通过向量的函数调用
- 没有为自己的结构调用列表推回方法
- bash脚本在使用popen()时不返回代码以调用C ++程序
- 在c++中使用popen调用cli实用程序时崩溃.适用于shell或fork、exec等
- 将系统和 POPEN 调用替换为不克隆进程内存的调用
- 在Mac上用汉字命令调用popen()
- 在Windows上确定从调用popen的PID