对于内核而言,所有打开的文件通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。
2.1 打开文件
2.1.1 函数名 open
2.1.2 函数原形 int open(const char *pathname,int flags); int open(const char *pathname,int flags, mode_t mode);
2.1.3 函数功能 打开或者创建一个文件
2.1.4 所属头文件 <sys/types.h> <sys/stat.h> <fctl.h>
2.1.5 返回值 成功:文件描述符 失败:-1
2.1.6 参数说明 pathname:要打开的文件名(含路径)
flags:文件打开的标志
O_RDONLY:只读
O_WRONLY:只写
O_RDWR:可读、可写
以上三个常量是必须包含其一的,下面的这两个是可选择的:
O_APPEND:以追加方式打开文件
O_CREAT:当打开的文件不存在的时候,创建该文件
mode:一定是flags中使用了O_CREAT标志,mode记录不同用户对创建的文件的权限。
2.2 创建文件
2.1.1 函数名 creat
2.1.2 函数原形 int creat(const char* pathname, mode_t mode);
2.1.3 函数功能 创建一个文件
2.1.4 所属头文件 <sys/types.h> <sys/stat.h> <fctl.h>
2.1.5 返回值 成功:文件描述符 失败:-1
2.1.6 参数说明 pathname:要打开的文件名(含路径)
2.3 关闭文件
2.3.1 函数名 close
2.3.2 函数原形 int close(int fd);
2.3.3 函数功能 关闭一个文件
2.3.4 所属头文件 <unistd.h>
2.3.5 返回值 成功:0 失败:-1
2.3.6 参数说明 fd:待关闭的文件描述符
2.4 读文件
2.4.1 函数名 read
2.4.2 函数原形 ssize_t read(int fd, void *buf, size_t count);
2.4.3 函数功能 从一个打开的文件中读取数据
2.4.4 所属头文件 <unistd.h>
2.4.5 返回值 成功:返回读取的字节数 失败:-1
2.4.6 参数说明 fd:待读取的文件的文件描述符
buf:读取来的数据存放在buf里。
count:想要读取的字节数
2.5 写文件
2.5.1 函数名 write
2.5.2 函数原形 ssize_t write(int fd, const void *buf, size_t count);
2.5.3 函数功能 向一个打开的文件中写入数据
2.5.4 所属头文件 <unistd.h>
2.5.5 返回值 成功:写入到文件里的字节数 失败:-1
2.5.6 参数说明 fd:要写入数据的文件的文件描述符
buf:要写入的数据的存放位置
count:要写入的数据的字节数
文章评论(0条评论)
登录后参与讨论