xref: /plan9/sys/src/libstdio/fgets.c (revision 3e12c5d1bb89fc02707907988834ef147769ddaf)
1*3e12c5d1SDavid du Colombier /*
2*3e12c5d1SDavid du Colombier  * pANS stdio -- fgets
3*3e12c5d1SDavid du Colombier  */
4*3e12c5d1SDavid du Colombier #include "iolib.h"
fgets(char * as,int n,FILE * f)5*3e12c5d1SDavid du Colombier char *fgets(char *as, int n, FILE *f){
6*3e12c5d1SDavid du Colombier 	int c;
7*3e12c5d1SDavid du Colombier 	char *s=as;
8*3e12c5d1SDavid du Colombier 	c = EOF;
9*3e12c5d1SDavid du Colombier 	while(n>1 && (c=getc(f))!=EOF){
10*3e12c5d1SDavid du Colombier 		*s++=c;
11*3e12c5d1SDavid du Colombier 		--n;
12*3e12c5d1SDavid du Colombier 		if(c=='\n') break;
13*3e12c5d1SDavid du Colombier 	}
14*3e12c5d1SDavid du Colombier 	if(c==EOF && s==as
15*3e12c5d1SDavid du Colombier 	|| ferror(f)) return NULL;
16*3e12c5d1SDavid du Colombier 	if(n) *s='\0';
17*3e12c5d1SDavid du Colombier 	return as;
18*3e12c5d1SDavid du Colombier }
19