Игнорировать SIGPIPE для одного открытого ФАЙЛА*

StackOverflow https://stackoverflow.com/questions/1351395

  •  20-09-2019
  •  | 
  •  

Вопрос

Код, который я рассматриваю, находится здесь:

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

Sparkle похож на плагин.Его можно создать в многопоточной программе.Поэтому я не хочу вызывать signal(SIGPIPE, SIG_IGN) (т.е.игнорировать все SIGPIPE), поскольку кто знает, что делают/ожидают другие потоки.

Как я могу отключить сигнал SIGPIPE для этого указателя FILE, открытого через popen?

Это было полезно?

Решение

Если в спецификациях, которые вы используете для написания своего плагина, не указано, что вам нужно делать, я не вижу, чтобы вы ничего могли сделать с помощью Pipe().Возможным способом решения этой проблемы было бы написать эквивалент popen() с использованием Socketpair() и fdopen().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top