进程通信(管道 单向通信)
来源:互联网 发布:西南大学官网网络教育 编辑:程序博客网 时间:2024/06/06 16:39
1 #include<stdio.h> 2#include<sys/wait.h> 3#include<unistd.h> 4#include<string.h> 5#include<stdlib.h> 6int main() 7 { 8 int pipefd[2]; 9 if(pipe(pipefd)==-1) 10 { 11 perror("pipe"); 12 return -1; 13 } 14 pid_t pid=fork(); 15 if(pid<0) 16 { 17 perror("pid"); 18 return -1; 19 } 20 else if(pid==0) 21 { 22 close(pipefd[0]); 23 char buf[20]="we are young"; 24 int i=0; 25 while(i<10) 26 { 27 write(pipefd[1],buf,strlen(buf)); 28 sleep(1); 29 i++; 30 } 31 exit(1); 32 } 33 else 34 { 35 close(pipefd[1]); 36 char buf[200]; 37 int j=0; 38 while(j<10) 39 { 40 memset(buf,'\0',sizeof(buf)); 41 ssize_t size= read(pipefd[0],buf,sizeof(buf)); 42 if(size>0) 43 printf("%s\n",buf); 44 j++; 45 } 46 if(waitpid(pid,NULL,0)==pid) 47 { 48 printf("wait success\n"); 49 } 50 } 51 return 0; 52 } Makefile: 1 Pipe:pipe.c 2 gcc -o $@ $^ 3.PHONY:clean 4clean: 5 rm -f pipe
本文出自 “liveyoung” 博客,转载请与作者联系!
0 0
- 进程通信(管道 单向通信)
- 进程通信 (命名管道 单向通信)
- C#命名管道进程通信(一单向)
- 父子进程间的单向管道通信
- 进程通信(管道)
- 进程通信 管道通信
- 进程通信---管道通信
- 通信方式--管道(父子进程通信)
- 进程间通信(管道)
- 进程间通信之管道通信(匿名管道)
- 进程通信之管道通信
- 进程通信之管道通信
- 进程通信,管道通信 1.0
- 进程通信之管道通信
- 进程间通信-管道通信
- 【进程通信】之管道通信
- 进程间通信--管道通信
- 进程间管道通信
- memmove函数的实现
- memmove函数实现2
- 创建一个字符串数组,总共5个元素,每个元素最多保存30个字符,写一个函数排序整个数组。
- c语言实现动态顺序表
- 实习杂记(22)being added, but it already has a parent
- 进程通信(管道 单向通信)
- 进程通信 (命名管道 单向通信)
- 进程通信(消息队列)
- bochs配置文件最简单的例子
- 进程通信(信号量)
- 进程通信(共享内存)
- 线程的创建、终止、等待
- RxJava操作符(02-创建操作)
- 分离线程