1、进程间通信当中一种比較简单的方法是管道操作
编译执行输出例如以下:
/* ============================================================================ Name : Test.c Author : wangchuan Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int main(int argc,char* argv[]) { int fd[2],cld_pid,len; char buf[200]; if(pipe(fd) == -1){ perror("创建管道出错"); exit(1); } if((cld_pid=fork()) == 0){ close(fd[1]); len = read(fd[0],buf,sizeof(buf)); buf[len] = 0; printf("子进程从管道中读取的数据是:%s ",buf); exit(0);//结束子进程 } else{ close(fd[0]); sprintf(buf,"父进程为子进程(PID=%d)创建该数据",cld_pid); write(fd[1],buf,strlen(buf)); exit(0);//结束父进程 } return 0; }
编译执行输出例如以下:
子进程从管道中读取的数据是:父进程为子进程(PID=7309)创建该数据