У меня проблема в моей программе, которая использует трубы.Записать в тупиковую программу трубок
То, что я делаю, используя трубу вместе с вилкой/Exec для передачи данных другого процесса
Что у меня есть что-то вроде этого:
//pipes are created up here if(fork() == 0) //child process { ... execlp(...); } else { ... fprintf(stderr, "Writing to pipe now\n"); write(pipe, buffer, BUFFER_SIZE); fprintf(stderr, "Wrote to pipe!"); ... }
Это отлично работает для большинства сообщений, но когда сообщение очень велико, запись в тупиковые трубы.
Я думаю, что труба может быть полной, но я не знаю, как ее очистить. Я пробовал использовать fsync, но это не сработало.
Может ли кто-нибудь мне помочь?
Это исправлено, спасибо, я не закрывал трубку, пока не закончил писать – avs3323