⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pipe_sample.c

📁 linux下有命管道和无名管道的使用。以及管道读写规则
💻 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 + -