Использование сигналов для IPC неудобно и примитивно.Вы действительно должны выбирать между сокетами Unix (не TCP!) И каналами.
Как правило, с каналами проще программировать, поскольку они гарантируют, что один write
размером PIPE_BUF
является атомарным.Однако у них есть свои ограничения.Например, когда записывающее устройство работает быстрее считывающего устройства, оно начинает блокироваться, когда буфер канала заполняется.Размер этого буфера по умолчанию составляет около 64 КБ, и его нельзя изменить без перекомпиляции ядра, по крайней мере, в Linux.Каналы также являются однонаправленными, что означает, что в каждом процессе вам нужно будет сохранить пару каналов, один для чтения и один для записи.
Сокеты Unix имеют настраиваемый размер буфера отправки и более продвинутый интерфейс программирования..