Именованные каналы в Linux . Передача данных между процессами
Форум — Development
Прошу помощи с именованными каналами . Нужно передать данные от 1-го процесса в 2-ой . В 1-ом процессе вводятся данные , а во 2-ом они должны выводится .
Вот 2 файла :
Первый файл :
#include <iostream>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
using namespace std;
int main(int argc, const char * argv[])
{
unlink("chanelfirst"); //удалить имя , если оно уже есть */
char msg[255]; //для сообщения
int err = mknod("chanelfirst",S_IFIFO|0x1b6,0); //создать канал
if(err == 0 ) cout <<" chanelfirst created " << endl;
int pin;
cout<<" You are in 1 , enter your msg : "<<endl;
cin>>msg; //введение сообщения
pin = open("chanelfirst",O_WRONLY | O_NDELAY); //открыть канал
write(pin, msg, 255); //записать в канал
close(pin); //закрыть канал
unlink("chanelfirst"); //удалить имя */
return 0;
}
Второй файл :
#include <iostream>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
using namespace std;
int main(int argc, const char * argv[])
{
char msg[255]; //сообщение
int pinF = open("chanelfirst",O_RDONLY); //открытие канала
read(pinF,msg,sizeof(msg));
cout<<"2 : msg is coming from 1 is: "<<msg<<endl;
return 0;
}
Ничего не получается вывести во втором процессе , хотя и ввожу данные в первом .
В чём может быть ошибка ? Что я не так делаю ? Подскажите , пожалуйста . Очень надеюсь на Вашу помощь . Заранее спасибо !