1

私が見ているコードはここにあります:

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

Sparkle はプラグインのようなものです。マルチスレッドプログラムでインスタンス化できます。したがって、他のスレッドが何を行っているか/期待しているかを誰が知っているかとして、signal(SIGPIPE, SIG_IGN) (つまり、すべてのSIGPIPE を無視する) を呼び出したくありません。

popen を介して開かれたこの 1 つの FILE ポインターの SIGPIPE シグナルを無効にするにはどうすればよいですか?

4

1 に答える 1

0

プラグインの作成に使用している仕様で何をする必要があるかが指定されていない場合、pipe()でできることは何もわかりません。この問題を解決するための可能な方法は、socketpair()とfdopen()を使用して同等のpopen()を作成することです。

于 2009-08-29T13:42:31.333 に答える