xref: /plan9-contrib/sys/src/ape/lib/ap/stdio/iolib.h (revision 22df390c30710ddd2119f3e7bb6c92dc399cabb9)
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  */
17*22df390cSDavid du Colombier #ifndef _SUSV2_SOURCE
18*22df390cSDavid du Colombier #define _SUSV2_SOURCE	/* for *intptr_t types */
19*22df390cSDavid du Colombier #endif
20*22df390cSDavid du Colombier 
213e12c5d1SDavid du Colombier #include <stdio.h>
22*22df390cSDavid du Colombier #include <inttypes.h>
233e12c5d1SDavid du Colombier #include <stdlib.h>
243e12c5d1SDavid du Colombier #include <sys/types.h>
253e12c5d1SDavid du Colombier #include <unistd.h>
263e12c5d1SDavid du Colombier #include <fcntl.h>
273e12c5d1SDavid du Colombier 
283e12c5d1SDavid du Colombier /*
293e12c5d1SDavid du Colombier  * Flag bits
303e12c5d1SDavid du Colombier  */
313e12c5d1SDavid du Colombier #define	BALLOC	1	/* did stdio malloc fd->buf? */
323e12c5d1SDavid du Colombier #define	LINEBUF	2	/* is stream line buffered? */
333e12c5d1SDavid du Colombier #define	STRING	4	/* output to string, instead of file */
343e12c5d1SDavid du Colombier #define APPEND	8	/* append mode output */
353e12c5d1SDavid du Colombier /*
363e12c5d1SDavid du Colombier  * States
373e12c5d1SDavid du Colombier  */
383e12c5d1SDavid du Colombier #define	CLOSED	0	/* file not open */
393e12c5d1SDavid du Colombier #define	OPEN	1	/* file open, but no I/O buffer allocated yet */
403e12c5d1SDavid du Colombier #define	RDWR	2	/* open, buffer allocated, ok to read or write */
413e12c5d1SDavid du Colombier #define	RD	3	/* open, buffer allocated, ok to read but not write */
423e12c5d1SDavid du Colombier #define	WR	4	/* open, buffer allocated, ok to write but not read */
433e12c5d1SDavid du Colombier #define	ERR	5	/* open, but an uncleared error occurred */
443e12c5d1SDavid du Colombier #define	END	6	/* open, but at eof */
453e12c5d1SDavid du Colombier char *strerror(int errno);
463e12c5d1SDavid du Colombier int _IO_setvbuf(FILE *);
477dd7cddfSDavid du Colombier FILE *_IO_sopenr(const char*);
487dd7cddfSDavid du Colombier FILE *_IO_sopenw(void);
497dd7cddfSDavid du Colombier char *_IO_sclose(FILE *);
50