【发布时间】:2013-03-27 09:44:22
【问题描述】:
在 pclose 函数的文档中有一段代码说明了如何实现 pclose() 函数
int pclose(FILE *stream)
{
int stat;
pid_t pid;
pid = <pid for process created for stream by popen()>
(void) fclose(stream);
while (waitpid(pid, &stat, 0) == -1) {
if (errno != EINTR){
stat = -1;
break;
}
}
return(stat);
}
所以我很有趣,他得到“popen() 为流创建的进程的 pid”的形式。有没有存储这个值的地方?
【问题讨论】:
-
我认为这是非常特定于操作系统的。
-
谢谢@kugg,这是我已经实现的问题的解决方案之一,但是使用标准函数并获取该pid会很好,但正如我从cmets和答案中了解到的那样,它是不可能。
-
如果它有帮助你可能想看看这个implementation