-----------------------------------------------------------------------------------------------------------------------------------------------------------------
文件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);