Я пытаюсь использовать FIFO для межпроцессорной обработки. Но при попытке создать FIFO и затем открыть его, моя программа зависает (не может выйти).Программа с mkfifo() и open() не может выйти
if (mkfifo("./fifo.txt", S_IRUSR | S_IWUSE) < 0) {
fprint("Can not create fifo");
return 1;
}
if ((readfd = open("./fifo.txt", O_RDONLY)) < 0) {
return 1;
}
Что я здесь делаю неправильно?
спасибо.
Используйте [Трассирование (1)] (http://man7.org/linux/man-pages/man1/strace.1.html) в вашей программе. И вызовите [perror (3)] (http://man7.org/linux/man-pages/man3/perror.3.html) при ошибке. –
«Открытие FIFO для чтения обычно блокирует, пока какой-либо другой процесс не откроет тот же FIFO для записи, и наоборот». https://linux.die.net/man/3/mkfifo – maxik