Low-Level I/O
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Low-Level I-O.
These functions invoke the operating system directly for lower-level operation than that provided by stream I/O. Low-level input and output calls do not buffer or format data.
Low-level routines can access the standard streams opened at program startup using the following predefined file descriptors.
Stream | File Descriptor |
---|---|
stdin |
0 |
stdout |
1 |
stderr |
2 |
Low-level I/O routines set the errno global variable when an error occurs. You must include STDIO.H when you use low-level functions only if your program requires a constant that is defined in STDIO.H, such as the end-of-file indicator (EOF
).
Low-Level I/O Functions
Function | Use |
---|---|
_close | Close file |
_commit | Flush file to disk |
_creat, _wcreat | Create file |
_dup | Return next available file descriptor for given file |
_dup2 | Create second descriptor for given file |
_eof | Test for end of file |
_lseek, _lseeki64 | Reposition file pointer to given location |
_open, _wopen | Open file |
_read | Read data from file |
_sopen, _wsopen, _sopen_s, _wsopen_s | Open file for file sharing |
_tell, _telli64 | Get current file-pointer position |
_umask, _umask_s | Set file-permission mask |
_write | Write data to file |
_dup
and _dup2
are typically used to associate the predefined file descriptors with different files.