从多个命名管道进行C写入/读取

时间:2019-01-31 20:48:18

标签: c bash ipc named-pipes

#include <stdio.h>
#include <unistd.h>
#include <ctype.h>
#include <fcntl.h>

int main()
{
    int data, pipe1, pipe2;
    pipe1 = open("pipe1",O_RDWR);
    pipe2 = open("pipe2",O_RDWR);
    read(STDIN_FILENO,&data,sizeof(data));
    write(pipe1,&data, sizeof(data));
    data+=1;
    write(pipe2,&data, sizeof(data));

    close(pipe1);
    close(pipe2);
    return 0;
}

我有这个程序。让我们称它为prog1,它将stdin值写入pipe1并将stdin值+1写入pipe2。

#include <stdio.h>
#include <unistd.h>
#include <ctype.h>
#include <fcntl.h>

int main()
{
    int data, pipe1;
    pipe1 = open("pipe1",O_RDWR);
    read(pipe1,&data,sizeof(data));
    write(STDOUT_FILENO,&data, sizeof(data));
    close(pipe1);
    return 0;
}

,此程序将其称为prog2,它从pipe1读取并写入stdout。 除了打开pipe2外,我还有与prog2相同的prog3。

如何将它们结合在bash中以正确运行。 我已经尝试过prog1&prog 2&prog3,但是它不起作用

0 个答案:

没有答案