xref: /plan9/sys/src/ape/lib/ap/stdio/fgets.c (revision 4b348146ee41394218745eb875dd9cbef009ee68)
13e12c5d1SDavid du Colombier /*
23e12c5d1SDavid du Colombier  * pANS stdio -- fgets
33e12c5d1SDavid du Colombier  */
43e12c5d1SDavid du Colombier #include "iolib.h"
fgets(char * as,int n,FILE * f)53e12c5d1SDavid du Colombier char *fgets(char *as, int n, FILE *f){
6*4b348146SDavid du Colombier 	int c=0;
73e12c5d1SDavid du Colombier 	char *s=as;
83e12c5d1SDavid du Colombier 	while(n>1 && (c=getc(f))!=EOF){
93e12c5d1SDavid du Colombier 		*s++=c;
103e12c5d1SDavid du Colombier 		--n;
113e12c5d1SDavid du Colombier 		if(c=='\n') break;
123e12c5d1SDavid du Colombier 	}
133e12c5d1SDavid du Colombier 	if(c==EOF && s==as
143e12c5d1SDavid du Colombier 	|| ferror(f)) return NULL;
153e12c5d1SDavid du Colombier 	if(n) *s='\0';
163e12c5d1SDavid du Colombier 	return as;
173e12c5d1SDavid du Colombier }
18