📄 temp3.c
字号:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/wait.h>#define BUFFER 255/* 管道通信 */int main(int argc,char **argv) { char buffer[BUFFER+1]; int fd[2]; if(argc!=2) { fprintf(stderr,"Usage:%s string\n\a",argv[0]); exit(1); } /* 创建管道 */ if(pipe(fd)!=0) { fprintf(stderr,"Pipe Error:%s\n\a",strerror(errno)); exit(1); } /* 创建子进程 */ if(fork()==0) { close(fd[0]); // f[0]读,关闭 printf("Child[%d] Write to pipe\n\a",getpid()); snprintf(buffer,BUFFER,"%s",argv[1]); // 将argv[1]中字符串复制到buffer缓冲区,大小上限为BUFFER write(fd[1],buffer,strlen(buffer)); // 从buffer中写strlen(buffer)字节到文件fd[1] printf("Child[%d] Quit\n\a", getpid()); exit(0); } else { close(fd[1]); // f[1]写,关闭 printf("Parent[%d] Read from pipe\n\a",getpid()); memset(buffer,'\0',BUFFER+1); // 初始化buffer缓冲区 read(fd[0],buffer,BUFFER); // 从文件fd[0]读取BUFFER字节到buffer缓冲区 printf("Parent[%d] Read:%s\n",getpid(),buffer); exit(1); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -