美文网首页
有名管道

有名管道

作者: 8dc010427b39 | 来源:发表于2017-02-07 14:43 被阅读0次

shell       

mkfifo      fifo1 [名称] 建立一个有名管道

cat < fifo1  用cat读取有名管道fifo1数据

ls > fifo1  把ls输出内容写到管道中


创建管道

int mkfifo(const char *pathname,mode_t mode);  mode_t权限 0777 0666

if(mkfifo("fifo1",0666) == -1){

printf("error %s\n",strerror(errno));

return -1;

}


读管道数据

int fd = open("fifo1",O_RONLY);

if(fd == -1){

printf("error %s\n",strerror(errno));

return -1;

}

char buf[1024];

memset(buf,0,sizeof(buf));

read(fd,buf,sizeof(buf)); //read函数是阻塞的直到读到数据后才返回

printf("%s\n",buf);


向管道写数据

int fd = open("fifo1",O_WRONLY);

if(fd == -1){

printf("error %s\n",strerror(errno));

return -1;

}

char buf[1024];

memset(buf,0,sizeof(buf));

strcpy(buf,"helloworld");

write(fd,buf,sizeof(buf)); //将buf内容写入管道

close(fd);

return 0;

相关文章

  • 进程间通信方式

    管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字...

  • 有名管道

    shell mkfifo fifo1 [名称] 建立一个有名管道 cat < fifo1 用cat读取有...

  • 进程间通信之有名管道

    1 有名管道 有名管道与无名管道的通信机制差不多,唯一不同在于,有名管道需要在文件系统中创建指定名称的管道文件,用...

  • 使用os pipe管道使python fork多进程之间通信

    管道(pipe) 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功...

  • 进程通信方式

    1、管道与有名管道管道可用于具有亲缘关系的父子进程间通信,有名管道除了具有管道的特点外,还允许无亲缘关系的进程进行...

  • 进程通信方式

    管道及有名管道信号消息队列共享内存信号量套接字

  • 有名管道的特点

    有名管道具有以下特点: ①它可以使互不相关的两个进程间实现彼此通信; ②该管道可以通过路径名来指出,并且在文件系统...

  • 进程间通信的方式

    管道(pipe),流管道(s_pipe)和有名管道(FIFO) 信号(signal) 消息队列 共享内存 信号量 ...

  • 进程间通信

    声明:图片资源摘自于网络 管道(PIPE) 有名管道(FIFO) 进程1 进程2 高级管道(popen) 共享内存...

  • 进程间通信

    进程通信方式 管道/匿名管道(pipe) 管道的实质是一个内核缓冲区会有哪些问题?怎么解决? 有名管道(FIFO)...

网友评论

      本文标题:有名管道

      本文链接:https://www.haomeiwen.com/subject/estmittx.html