1.管道pipe:
2.有名管道FIFO:
创建方法:1.直接mkfifo FIFONAME 创建有名管道。
2.在.c里写代码创建,头文件包括sys/stat.h
实现无血缘间进程的通信:
其实FIFO和文件打开关闭相似性大,与管道pipe其实关联性并不大。
写端write:
#include<stdio.h> #include<unistd.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<stdlib.h> #include<string.h> int main(int argc,char *argv[]){ int fd,i; char buf[4096]; fd = open(argv[1],O_WRONLY); i=0; while(1){ sprintf(buf,"hello itcast: %d\n",i++); write(fd,buf,strlen(buf)); sleep(1); } close(fd); return 0; }View Code
读端read:
#include<stdio.h> #include<unistd.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<stdlib.h> #include<string.h> int main(int argc,char *argv[]){ int fd,len; char buf[4096]; fd = open(argv[1],O_RDONLY); int i=0; while(1){ len = read(fd,buf,sizeof(buf)); write(STDOUT_FILENO,buf,len); sleep(1); } close(fd); return 0; }View Code