Межпроцессное взаимодействие с использованием канала в Linux

Я написал свой код для написания номера в linux. это как указано ниже, но оно показывает ошибки, может ли кто-нибудь помочь мне в этом.

В основном проблема для программы следующая: – Одна программа откроет канал, напишет номер на канал. – Другая программа откроет тот же канал, будет читать номер и печатать их. – Закройте обе трубы

int main() { int number; FILE *fout; fout = popen(" ","w"); pclose(fout); return 0; } 

Теперь мой вопрос заключается в том, какую команду я должен указывать в опции команды popen (как показано выше), чтобы я мог продолжить дальше и написать номер в трубку.

Сначала создайте именованный канал, используя команду mknod. mknod pipe p . Затем читать и писать с использованием функций, как если бы они были файлами. Узел также может быть создан с помощью кода, используя функцию mknod . Найдите код ошибки EEXIST . Дополнительная информация здесь. http://linux.die.net/man/2/mknod

Вы плохо понимаете, как работают IPC и трубы; прочитайте хорошую книгу: Advanced Linux Programming имеет несколько глав по этим вопросам.

У нас нет часов, чтобы объяснить сложные концепции, охватываемые такими хорошими книгами. Потратьте несколько часов, чтобы прочитать их!

Функция библиотеки popen (3) выполняет команду. Вероятно, у вас нет команды p в вашей системе. Я предполагаю, что fp имеет значение NULL и errno .

popen использует трубу (2) , вилку (2) , dup2 (2) , execve (2) и /bin/sh -c т. д.