1. open
头文件:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
原型:
int open(const char* pathname, int flags);//这种原型是打开一个已经存在的文件
int open(const char* pathname, int flags, mode_t mode);//这种原型既可以打开存在的文件也可以打开不存在的文件
参数:
pathname:文件名
flags:O_RDONLY(只读)、O_WRONLY(只写)、O_RDWR(可读可写)、
O_APPEND(追加)、C_CREAT(创建)、O_EXCL、O_TRUNC(截断)、O_NONBLOCK(非阻塞)
open("./log.txt",O_WRONLY
| C_CREAT
| O_TRUNC
);//文件不存在就创建文件且把文件清空
返回值:
成功返回fd
失败返回-1
2. close
头文件:
#include <unistd.h>
原型:
int close(int fd)
参数:
fd:文件描述符返回值:
成功返回0
失败返回-1
3. read
头文件:
#include <unistd.h>
原型:
ssize_t read(int fd, void* buf, size_t count);
参数:
fd:文件描述符
buf:存放从文件读取内容的缓冲区
count:想读的字节数
返回值:
0:文件已经读完
>0:从文件读取到的字节数(实际读到的字节数)
-1 :失败
2. write
头文件:
#include <unistd.h>
原型:
ssize_t write(int fd, const void *buf, size_t count)
参数:
fd:文件描述符
buf:要写入文件的缓冲区
count:想写入文件的字节数
返回值:
>0:实际写入的字节数(想写入的字节数必须和实际写入的字节数相等才能算写入成功)
-1:失败
2. lseek(改变文件指针位置)
头文件:
#include <sys/types.h>
#include <unistd.h>
原型:
off_t lseek(int fd, off_t offset, int whence) off_t是Long型
参数:
fd:文件描述符
offset:相对于当前文件指针的偏移量
whence:文件指针当前的位置
SEEK_SET 文件指针指向文件开头位置 如:lseek(fd, 0, SEEK_SET)//文件指针指向文件开头且偏移量为0,即就是文件开头,下次对文件的操作就从开头开始操作
SEEK_CUR 文件指针指向当前的位置 如:lseek(fd, -1, SEEK_CUR)//当前的文件指针向前移动1,下次如果往文件里写,将覆盖掉一字节
SEEK_END 文件指针指向文件结尾的位置 如:lseek(fd, 0, SEEK_END)//文件指针指向文件结尾且偏移量为0,即就是文件尾部,也就是文件大小
返回值:
当前文件指针相对文件开头的偏移量
-1:失败
标签:文件,函数,字节数,int,fd,操作,include,指针 From: https://www.cnblogs.com/zj-studyrecoding/p/17121774.html