编写程序,子进程通过管道向父进程发出字符串"ok".
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 int main(void) { 5 int data_processed; //用于记录已经处理的数据 6 int file_pipes[2]; //定义两个文件描述符 7 char buffer[BUFSIZ + 1]; //定义一个缓冲区,以便从管道中读取数据 8 const char * some_data = "OK"; //定义一个将要写入管道中的字符串 9 memset(buffer, '\0', sizeof(buffer)); //初始化读取缓冲区 10 int fork_result; 11 if (pipe(file_pipes) == 0) { //创建管道 12 fork_result=fork(); 13 if(fork_result==-1){ 14 fprintf(stderr,"创建子进程失败"); 15 exit(EXIT_FAILURE); 16 } 17 if(fork_result==0){ //说明我们在子进程中 18 data_processed = read(file_pipes[0], buffer, BUFSIZ); 19 printf("子進程读出%d个字符。内容是:%s\n",data_processed,buffer); 20 }else{ //说明我们在父进程中 21 data_processed = write(file_pipes[1], some_data, sizeof(some_data)); 22 printf("父進程写入%d个字符\n", data_processed); 23 } 24 exit(EXIT_SUCCESS); 25 } 26 return EXIT_SUCCESS; 27 } 28