LINUX.ORG.RU

Сообщения NNN7

 

Именованные каналы в 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;
}

Ничего не получается вывести во втором процессе , хотя и ввожу данные в первом .

В чём может быть ошибка ? Что я не так делаю ? Подскажите , пожалуйста . Очень надеюсь на Вашу помощь . Заранее спасибо !

NNN7
()

RSS подписка на новые темы