lseek -- 1




引言Unix系统中大多数文件IO只需要5个函数:open、read、write、lseek、close这些都是不带缓冲的IO,即每个read和write都调用内核中的一个系统调用,需要注意的是,这里的“不带缓冲的IO”指的是在用户的进程中对这些函数不会自动缓冲,而事实上,所有的磁盘IO都要经过内核的块缓冲区(即内核的缓冲区高速缓存),只有对原始的磁盘设备的IO例外 文件描述符对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,当打开或创建一个文件时,内核会返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传给read或write。文件描述符0与进程的标准输入相关联,文件描述符1与标准输出相关联,文件描述符2与标准出错输出相关联。分别对应符号变量STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO(定义于 fcntl.h 中)。 open函数打开或创建文件,定义于 fcntl.h 头文件中int open( const char * pathname, int flags, . . . /*mode_t mode*/); 调用成功返回文件描述符,否则返回-1 第三个参数. . .表
#技术帖    #linux    #unix    #c++   



京ICP备15018585号