readline1.c

来自「unix network ,unix network unix networ」· C语言 代码 · 共 42 行

C
42
字号
/* include readline */#include	"unp.h"/* PAINFULLY SLOW VERSION -- example only */ssize_treadline(int fd, void *vptr, size_t maxlen){	ssize_t	n, rc;	char	c, *ptr;	ptr = vptr;	for (n = 1; n < maxlen; n++) {again:		if ( (rc = read(fd, &c, 1)) == 1) {			*ptr++ = c;			if (c == '\n')				break;	/* newline is stored, like fgets() */		} else if (rc == 0) {			*ptr = 0;			return(n - 1);	/* EOF, n - 1 bytes were read */		} else {			if (errno == EINTR)				goto again;			return(-1);		/* error, errno set by read() */		}	}	*ptr = 0;	/* null terminate like fgets() */	return(n);}/* end readline */ssize_tReadline(int fd, void *ptr, size_t maxlen){	ssize_t		n;	if ( (n = readline(fd, ptr, maxlen)) < 0)		err_sys("readline error");	return(n);}

⌨️ 快捷键说明

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