13 F I L E I / O B U F F E R I N G

Summary
Buffering of input and output data is performed by the kernel, and also by the stdio library. In some cases, we may wish to prevent buffering, but we need to be aware of the impact this has on application performance. Various system calls and library
functions can be used to control kernel and stdio buffering and to perform one-off buffer flushes.
A process can use posix_fadvise() to advise the kernel of its likely pattern for accessing data from a specified file.

The kernel may use this information to optimize the use of the buffer cache, thus improving I/O performance.
The Linux-specific open() O_DIRECT flag allows specialized applications to bypass the buffer cache.
The fileno() and fdopen() functions assist us with the task of mixing system calls and standard C library functions to perform I/O on the same file. Given a stream, fileno() returns the corresponding file descriptor; fdopen() performs the converse operation, creating a new stream that employs a specified open file descriptor.

猜你喜欢

转载自blog.csdn.net/zmjames2000/article/details/87933172