【发布时间】:2012-03-01 02:14:56
【问题描述】:
我有一条由exec() 或system() 或popen() 的调用者生成的消息,并希望将其传递给子进程。更改 env 是一种方法,但在多线程程序中,通过 putenv() 或 setenv() 更改 env 是不安全的。子进程的argv不允许我通过。
将某些内容写入某个文件是一种选择,但是我们如何确定一条特定消息是从哪个父级传递并打算发送给哪个子级的呢?一种方法是将父 pid 附加到消息中,子进程可以找到与 ppid 匹配的消息。但是当多个线程调用popen()时,会出现多条具有相同pid的消息。
【问题讨论】:
-
您使用什么语言?我猜是C?答案取决于语言:例如,Python 有一个
env参数到popen()...
标签: c multithreading thread-safety popen