xref: /plan9/sys/src/ape/lib/ap/stdio/iolib.h (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
13e12c5d1SDavid du Colombier /*
23e12c5d1SDavid du Colombier  * pANS stdio -- definitions
33e12c5d1SDavid du Colombier  * The following names are defined in the pANS:
43e12c5d1SDavid du Colombier  *	FILE	 	fpos_t		_IOFBF		_IOLBF		_IONBF
53e12c5d1SDavid du Colombier  *	BUFSIZ		EOF		FOPEN_MAX	FILENAME_MAX	L_tmpnam
63e12c5d1SDavid du Colombier  *	SEEK_CUR	SEEK_END	SEEK_SET	TMP_MAX		stderr
73e12c5d1SDavid du Colombier  *	stdin		stdout		remove		rename		tmpfile
83e12c5d1SDavid du Colombier  *	tmpnam		fclose		fflush		fopen		freopen
93e12c5d1SDavid du Colombier  *	setbuf		setvbuf		fprintf		fscanf		printf
103e12c5d1SDavid du Colombier  *	scanf		sprintf		sscanf		vfprintf	vprintf
113e12c5d1SDavid du Colombier  *	vsprintf	fgetc		fgets		fputc		fputs
123e12c5d1SDavid du Colombier  *	getc		getchar		gets		putc		putchar
133e12c5d1SDavid du Colombier  *	puts		ungetc		fread		fwrite		fgetpos
143e12c5d1SDavid du Colombier  *	fseek		fsetpos		ftell		rewind		clearerr
153e12c5d1SDavid du Colombier  *	feof		ferror		perror
163e12c5d1SDavid du Colombier  */
173e12c5d1SDavid du Colombier #include <stdio.h>
183e12c5d1SDavid du Colombier #include <stdlib.h>
193e12c5d1SDavid du Colombier #include <sys/types.h>
203e12c5d1SDavid du Colombier #include <unistd.h>
213e12c5d1SDavid du Colombier #include <fcntl.h>
223e12c5d1SDavid du Colombier 
233e12c5d1SDavid du Colombier /*
243e12c5d1SDavid du Colombier  * Flag bits
253e12c5d1SDavid du Colombier  */
263e12c5d1SDavid du Colombier #define	BALLOC	1	/* did stdio malloc fd->buf? */
273e12c5d1SDavid du Colombier #define	LINEBUF	2	/* is stream line buffered? */
283e12c5d1SDavid du Colombier #define	STRING	4	/* output to string, instead of file */
293e12c5d1SDavid du Colombier #define APPEND	8	/* append mode output */
303e12c5d1SDavid du Colombier /*
313e12c5d1SDavid du Colombier  * States
323e12c5d1SDavid du Colombier  */
333e12c5d1SDavid du Colombier #define	CLOSED	0	/* file not open */
343e12c5d1SDavid du Colombier #define	OPEN	1	/* file open, but no I/O buffer allocated yet */
353e12c5d1SDavid du Colombier #define	RDWR	2	/* open, buffer allocated, ok to read or write */
363e12c5d1SDavid du Colombier #define	RD	3	/* open, buffer allocated, ok to read but not write */
373e12c5d1SDavid du Colombier #define	WR	4	/* open, buffer allocated, ok to write but not read */
383e12c5d1SDavid du Colombier #define	ERR	5	/* open, but an uncleared error occurred */
393e12c5d1SDavid du Colombier #define	END	6	/* open, but at eof */
403e12c5d1SDavid du Colombier char *strerror(int errno);
413e12c5d1SDavid du Colombier int _IO_setvbuf(FILE *);
42*7dd7cddfSDavid du Colombier FILE *_IO_sopenr(const char*);
43*7dd7cddfSDavid du Colombier FILE *_IO_sopenw(void);
44*7dd7cddfSDavid du Colombier char *_IO_sclose(FILE *);
45