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

📄 testfifo.c

📁 入门程序
💻 C
字号:
/*********************************************** * Simple pipe demo program for linuxforum.net * * Edward Jiang <edward.jiang@oracle.com> * July 17, 2001 ***********************************************/#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#define BUFFERSIZE 1024int main(int argc, char *argv[]){	int fdp[2], rdfd, wtfd;	int r, pid;	unsigned char buffer[BUFFERSIZE];	if (argc != 3) {		fprintf(stderr, "Usage: %s <input_file> <output_file>\n",argv[0]);		exit(-1);	}	if ((r = pipe(fdp))<0) {		perror("Open pipe error");		exit(-2);	}	if ((rdfd = open(argv[1], O_RDONLY)) < 0) {		perror("Read file error");		exit(-3);	}	if ((wtfd = open(argv[2], O_CREAT | O_WRONLY | O_TRUNC)) < 0) {		perror("Write file error");		exit(-4);	}	if ((pid = fork())>0) {		close(wtfd);		close(fdp[0]);		while ((r = read(rdfd, buffer, BUFFERSIZE)) > 0) {			write(fdp[1], buffer, r);		}		close(rdfd);		close(fdp[1]);		waitpid(pid, NULL, 0);		printf("Parent process exit\n");		exit(0);	}	else if (pid == 0) {		close(rdfd);		close(fdp[1]);		while ((r = read(fdp[0], buffer, BUFFERSIZE)) > 0) {			write(wtfd, buffer, r);		}		close(wtfd);		close(fdp[0]);		printf("Child process exit\n");		_exit(0);	}	else {		perror("Fork error");		exit(-5);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -