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

📄 child05.c

📁 unix network ,unix network unix network
💻 C
字号:
/* include child_make */#include	"unp.h"#include	"child.h"pid_tchild_make(int i, int listenfd, int addrlen){	int		sockfd[2];	pid_t	pid;	void	child_main(int, int, int);	Socketpair(AF_LOCAL, SOCK_STREAM, 0, sockfd);	if ( (pid = Fork()) > 0) {		Close(sockfd[1]);		cptr[i].child_pid = pid;		cptr[i].child_pipefd = sockfd[0];		cptr[i].child_status = 0;		return(pid);		/* parent */	}	Dup2(sockfd[1], STDERR_FILENO);		/* child's stream pipe to parent */	Close(sockfd[0]);	Close(sockfd[1]);	Close(listenfd);					/* child does not need this open */	child_main(i, listenfd, addrlen);	/* never returns */}/* end child_make *//* include child_main */voidchild_main(int i, int listenfd, int addrlen){	char			c;	int				connfd;	ssize_t			n;	void			web_child(int);	printf("child %ld starting\n", (long) getpid());	for ( ; ; ) {		if ( (n = Read_fd(STDERR_FILENO, &c, 1, &connfd)) == 0)			err_quit("read_fd returned 0");		if (connfd < 0)			err_quit("no descriptor from read_fd");		web_child(connfd);				/* process request */		Close(connfd);		Write(STDERR_FILENO, "", 1);	/* tell parent we're ready again */	}}/* end child_main */

⌨️ 快捷键说明

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