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

📄 pipe.c

📁 《Linux程序设计权威指南》源代码
💻 C
字号:
	/* File: pipe.c */	#include <stdio.h>	#include <sys/types.h>	#include <unistd.h>	//子进程读数据	void read_data(int pipes[]) {		int c;		int rc;		//关闭写的一端		close(pipes[1]);		//读数据并打印 		while ((rc = read(pipes[0], &c, 1)) > 0){			putchar(c);		}		exit(0);	}	//父进程写数据	void write_data(int pipes[])	{		int c;		int rc;		//关闭读数据一端		close(pipes[0]);		//从控制台读数据并向管道写数据		while ((c = getchar()) > 0) {			rc = write(pipes[1], &c, 1);			if (rc == -1) {				perror("Parent: write");				close(pipes[1]);				exit(1);			}		}		//关闭写一端		close(pipes[1]);		exit(0);	}	int main(int argc, char*argv[])	{		int pipes[2];		pid_t pid;		//fork返回的进程号		int rc;			//返回值		//建立管道		rc = pipe(pipes);		if (rc == -1) {			perror("pipe");			exit(1);		}		//建立子进程		pid = fork();		switch(pid) {			//失败			case -1:				perror("fork");				exit(1);			//子进程			case 0:				read_data(pipes);				//不能到这里			//父进程			default:				write_data(pipes);				//不能到这里/		}		return 0;	}

⌨️ 快捷键说明

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