📄 pipe_sample.c
字号:
#include <unistd.h>#include <stdio.h>#include <string.h>#include <sys/types.h>#include <signal.h>#include <fcntl.h>void sig_handle(int signum){ printf("signal number is %d\n",signum);}int main(int argc,char *argv[]){ int fd[2]; pid_t child; char buffer[6000]; char r_buffer[6000]; int write_count=0; int read_count=0; if (pipe(fd)==-1) { //perror("pipe:"); printf("error!\n"); return -1; } strcpy(buffer,"this pipe sample!"); signal(SIGPIPE,sig_handle); child=fork(); if (child==0) { close(fd[1]); sleep(5); printf("ready read data!\n"); read_count=read(fd[0],r_buffer,sizeof(r_buffer)); //close(fd[0]); /*sleep(5); read_count=read(fd[0],r_buffer,sizeof(r_buffer)); printf("%s",r_buffer); close(fd[0]); */ exit(1); } else if (child>0) { sleep(2); close(fd[0]); fcntl(fd[1],F_SETFL,O_NONBLOCK); write_count=write(fd[1],buffer,sizeof(buffer)); close(fd[1]); //sleep(2); } printf("you writed %d byte\n",write_count); return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -