; stdio.h ; Definitions for stream input/output. _NFILE equ 20 ; Bufferisation type to be used as 3rd argument for "setvbuf" function _IOFBF equ 0 _IOLBF equ 1 _IONBF equ 2 ; "flags" bits definitions _F_RDWR equ 00003h ; Read/write flag _F_READ equ 00001h ; Read only file _F_WRIT equ 00002h ; Write only file _F_BUF equ 00004h ; Malloc'ed Buffer data _F_LBUF equ 00008h ; line-buffered file _F_ERR equ 00010h ; Error indicator _F_EOF equ 00020h ; EOF indicator _F_BIN equ 00040h ; Binary file indicator _F_IN equ 00080h ; Data is incoming _F_OUT equ 00100h ; Data is outgoing _F_TERM equ 00200h ; File is a terminal ; End-of-file constant definition EOF equ (-1) ; End of file indicator ; Default buffer size use by "setbuf" function STDIO_BUFSIZ equ 512 ; Buffer size for stdio ; Size of an arry large enough to hold a temporary file name string L_ctermid equ 5 ; CON: plus null byte P_tmpdir equ "" ; temporary directory L_tmpnam equ 13 ; tmpnam buffer size ; Constants to be used as 3rd argument for "fseek" function SEEK_CUR equ 1 SEEK_END equ 2 SEEK_SET equ 0 ; Number of unique file names that shall be generated by "tmpnam" function TMP_MAX equ 0FFFFh ; Definition of the control structure for streams FILE struc level dw ? ; fill/empty level of buffer flags dw ? ; File status flags fd db ? ; File descriptor hold db ? ; Ungetc char if no buffer _bsize dw ? ; Buffer size. Yes, calling it just "bsize" crashes TASM. if LDATA buffer dd ? ; Data transfer buffer curp dd ? ; Current active pointer else buffer dw ? ; Data transfer buffer curp dw ? ; Current active pointer endif istemp dw ? ; Temporary file indicator token dw ? ; Used for validity checking FILE ends FOPEN_MAX equ _NFILE SYS_OPEN equ _NFILE FILENAME_MAX equ 80