1

我正在查看的代码在这里:

http://github.com/andymatuschak/Sparkle/blob/8ea15468b4a8c0487ca7a72f3c9e6ffb708c6af8/SUPipedUnarchiver.m

Sparkle 就像一个插件。它可以在多线程程序中实例化。因此,我不想调用 signal(SIGPIPE, SIG_IGN) (即忽略所有SIGPIPE),因为谁知道其他线程正在做什么/期待什么。

如何禁用通过 popen 打开的这个 FILE 指针的 SIGPIPE 信号?

4

1 回答 1

0

如果您用于编写插件的规范没有指定您必须做什么,我认为您无法使用 pipe()。解决这个问题的一种可能方法是使用 socketpair() 和 fdopen() 编写一个等效的 popen()。

于 2009-08-29T13:42:31.333 回答