UNIX--文件I/O函数--open、creat、close、lseek、read、write等各种函数 详解

时间:2022-02-26 19:05:22

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

文件I/O函数-------打开文件、读文件、写文件

对于内核而言 ,所有打开的文件都通过文件描述符引用!(早期的上限是19 现在是63)

0-----------标准输入

1------------标准输出

2-----------标准错误

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

O_RDONLY  只读打开

O_WRONLY 只写打开

O_RDWR 读写打开

O_EXEC只执行打开

O_SEARCH 只搜索打开

O_APPEND 每次写时都追加到文件的尾端

O_CLOEXEC 把FD_CLOEXEX常亮设置为文件描述符标志

O_CREAT 若此文件不存在则创建它

O_EXCL 如果同时指定O_creat,而文件已存在,则出错。检测一个文件是否存在,不存在则创建它

O_TRUNC 如果此文件存在,而且为只写或读—写打开 则将其长度截止为0

---------------------------------------------------------------------------------------------------------------------------------------------------

1.1 int open (int fd,const char *path,int oflag,.. /*mode_t  mode */)

path参数 是要打开或创建文件的名字。oflag 参数可用来说明此函数的多个选项。

2.2 int creat(const char *path, most_t mode)  <-> open (path, O_WRONLY | O_TRUNC , mode);

3.3  off_t lseek(int fd, off_t offest, int whence); whence: 分别有SEEK_SET SEEK_CUR SEEK_END

注:通常文件的当前偏移量应当是一个非负整数,但是,某些设备也可能允许负的偏移量。但对于普通文件,其偏移量必须是非负值。因为偏移量可能是负值,所以在比较lseek的返回值时应当谨慎,不要测试它是否小于0而是-1.

4.4 ssize_t read (int fd,void *buf,size_t nbytes);