文件编程概述
在Linux操作系统中,提供了一系列的API,基本的API包括:
(1)打开文件——open.
(2)读写文件——read/write.
(3)光标定位——lseek.
(4)关闭——close.
1.open 函数
函数原型:
int open (const char *pathname,int flags)。
int open (const char *pathname,int flags,mode_t mode)。
open函数需要三个头文件,可通过man 手册查到相应的头文件。
第一个参数 Pathname 是文件的路径,第二个参数flag是权限。
FLags: O_RDONLY 只读打开.
O_WRONLY 只写打开.
O_RDWR可读可写打开.
当我们附带权限之后,打开的文件只能按照这种权限操作,以上这三个常数应当只指定一个。下列常数是可选择的:
O_CREAT:若文件不存在则创建它。使用此选项时,,需要同时说明第三个参数mode,用其说明该新文件的存取许可权限。
O_EXCL: 如果同时指定了O_CREAT,而文件已经存在,可以说打开文件失败,或者返回值为-1。
O_APPEND:每次写时都加到文件的末端。
O_TRUNC:如果这个文件中本来是有内容的,而且为只读或只写成功打开,则将其长度截短为0。
mode:一定是在flags中使用了O_CREAT标志,mode记录待创建的文件的访问权限。
描述:给定一个文件路径,open函数返回一个文件描述符,一个小的非负整数。下一次系统调用队列(读写光标移动)等操作都要通过open的返回值——这个文件描述符来操作。
2.文件描述符
一个进程需要操作一个文件,那么对文件进行读写光标移动等操作,传递的参数就是open返回的文件描述符,这样系统才会知道对哪一个文件进行操作。