Linux IO文件编程

基本文件操作

常用头文件

#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h> //unix std
#include<fcntl.h> //file control

常用函数

open()

int open(const char *pathname, int flags, int perms); 
所需头文件
#include<sys/types.h>
#include<sys/stat.h>
    #include<fcntl.h>
参数名 释义
pathname 被打开的文件名
flags 文件打开方式
perms 存储权限
flags的参数值 释义
O_RDONLY 只读
O_WRONLY 只写
O_RDWR 读写
O_CREAT 创建文件,需要由perms参数指定文件权限
O_EXCL 创建文件,若文件存在则直接打开
O_NOCTTY 若文件为终端,该终端不会成为调用open进程的控制终端
O_TRUNC 若文件存在,删除文件中所有数据并设置大小为0
O_APPEND 打开文件时,将文件指针指向末尾(添加)
perms的参数值 释义
S_I(R/W/X)(USR/GRP/OTH) e.g: S_IRUSER:当前用户具有读权限,也可以设置成数字权限(0777)
结果 返回值
成功 返回文件描述符
失败 -1

close()

int close(int fd);
所需头文件
#include<unistd.h>
参数名 释义
fd 文件描述符
结果 返回值
成功 0
失败 -1

read()

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

从文件描述符fd所指定的文件中读取count个字节到buf所指缓冲区中

所需头文件
#include<unistd.h>
参数名 释义
fd 文件描述符
buf 存储所读出数据的缓冲区
count 指定读出的字节数
结果 返回值
成功 读到的字节数
已到达文件尾 0
失败 -1

write()

ssize_t write(int fd, void *buf, size_t count);

把count个字节从buf中写入文件描述符fd所指的文件中

所需头文件
#include<unistd.h>
参数名 释义
fd 文件描述符
buf 包含将要写入的数据的缓冲区
count 指定写入的字节数
结果 返回值
成功 写入的字节数
失败 -1

lseek()

off_t lseek(int fd, off_t offset, int whence);

将文件读写指针相对whence移动offset个字节

所需头文件
#include<sys/types.h>
#include<unistd.h>
参数名 释义
fd 文件描述符
offset 向后移动字节数(偏移量) //负数表示向前移)
whence 当前指针位置
whence的参数值 释义
SEEK_SET 当前位置为文件开头
SEEK_CUR 当前位置为文件指针的位置
SEEK_END 当前位置为文件结尾
分享