diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/crt32/stdio/_file.c | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/crt32/stdio/_file.c')
-rw-r--r-- | private/crt32/stdio/_file.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/private/crt32/stdio/_file.c b/private/crt32/stdio/_file.c new file mode 100644 index 000000000..a4deae84b --- /dev/null +++ b/private/crt32/stdio/_file.c @@ -0,0 +1,86 @@ +/*** +*_file.c - perprocess file and buffer data declarations +* +* Copyright (c) 1985-1992, Microsoft Corporation. All rights reserved. +* +*Purpose: +* file and buffer data declarations +* +*Revision History: +* 04-18-84 RN initial version +* ??-??-?? TC added field _bifsiz to iob2 to allow variable +* length buffers +* 10-02-86 SKS _NFILE_ is now different for real-mode and prot-mode +* _NFILE_ must be defined by compiler -D directory +* 05-27-87 JCR Protected mode now uses only 3 pre-defined file handles, +* not 5. Added PM (prot mode) to conditionalize handles. +* 06-24-87 SKS Make "_bufin[]" and "_bufout[]" near for Compact/Large +* models (MS real-mode version only) +* 07-01-87 PHG Changed PM switch to PROTMODE +* 11-05-87 JCR Added _buferr and modified stderr entry +* 11-09-87 SKS Removed IBMC20 switch, Changed PROTMODE to OS2 +* 01-04-88 JCR Moved _NFILE_ definition from command line to file +* 01-11-88 JCR Merged Mthread version into standard version +* 01-21-88 JCR Removed reference to internal.h and added _NEAR_ +* (thus, internal.h doesn't get released in startup +* sources even though _file.c does). +* 06-28-88 JCR Remove static stdout/stderr buffers +* 07-06-88 JCR Corrected _bufin declaration so it's always in BSS +* 08-24-88 GJF Added check that OS2 is defined whenever M_I386 is. +* 06-08-89 GJF Propagated SKS's fix of 02-08-89, and fixed copyright. +* 07-25-89 GJF Cleanup (deleted DOS specific and OS/2 286 specific +* stuff). Now specific to the 386. +* 01-09-90 GJF _iob[], _iob2[] merge. Also, fixed copyright +* 03-16-90 GJF Added #include <cruntime.h> and removed some (now) +* useless preprocessor stuff. +* 03-26-90 GJF Replaced _cdecl with _VARTYPE1. +* 02-14-92 GJF Replaced _NFILE_ with _NSTREAM_ for Win32, with _NFILE +* for non-Win32. +* +*******************************************************************************/ + +#include <cruntime.h> +#include <stdio.h> +#include <file2.h> + +/* + * Buffer for stdin. + */ + +char _bufin[BUFSIZ]; + + +/* + * FILE descriptors; preset for stdin/out/err (note that the __tmpnum field + * is not initialized) + */ +#ifdef _WIN32_ +FILE _VARTYPE1 _iob[_NSTREAM_] = { +#else +FILE _VARTYPE1 _iob[_NFILE] = { +#endif + /* _ptr, _cnt, _base, _flag, _file, _charbuf, _bufsiz */ + + /* stdin (_iob[0]) */ + + { _bufin, 0, _bufin, _IOREAD | _IOYOURBUF, 0, 0, BUFSIZ }, + + /* stdout (_iob[1]) */ + + { NULL, 0, NULL, _IOWRT, 1, 0, 0 }, + + /* stderr (_iob[3]) */ + + { NULL, 0, NULL, _IOWRT, 2, 0, 0 }, + +}; + + +/* + * pointer to end of descriptors + */ +#ifdef _WIN32_ +FILE * _lastiob = &_iob[_NSTREAM_ - 1]; +#else +FILE * _lastiob = &_iob[_NFILE - 1]; +#endif |