selectpipe.c

来自「unix环境高级编程 配套源代码 学习学习啊」· C语言 代码 · 共 29 行

C
29
字号
#include	<sys/types.h>#include	<sys/time.h>#include	"ourhdr.h"intmain(void){	int				i, n, fd[2];	fd_set			writeset;	struct timeval	tv;	if (pipe(fd) < 0)		err_sys("pipe error");	FD_ZERO(&writeset);	for (n = 0; ; n++) { /* write 1 byte at a time until pipe is full */		FD_SET(fd[1], &writeset);		tv.tv_sec = tv.tv_usec = 0;		/* don't wait at all */		if ( (i = select(fd[1]+1, NULL, &writeset, NULL, &tv)) < 0)			err_sys("select error");		else if (i == 0)			break;		if (write(fd[1], "a", 1) != 1)			err_sys("write error");	}	printf("pipe capacity = %d\n", n);	exit(0);}

⌨️ 快捷键说明

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