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, or O_RDWR
以上三个必须从中选择一个写入flags参数中
以下参数需要掌握一下:
O_APPEND:追加,在文件后面开始输入
O_CREAT:创建文件,当文件不存在的情况下创建这个文件,需要在后面添加创建文件的权限(mode)
创建文件之后的权限是mode&~umask
O_EXCL:跟上面的创建配套使用,如果文件存在了则打开失败
O_DIRECTORY:判断文件是否是目录,是目录则打开失败
O_NONBLOCK or O_NDELAY:不阻塞的打开文件,读写操作的时候不会卡住
O_TRUNC:打开文件的时候清空里面的内容
返回值:
返回一个文件描述符(就是文件的代号)
注意:
默认情况下,应用已经打开了三个文件0(标准输入),1(标准输出),2(标准出错)
close:关闭一个文件描述符
#include <unistd.h>
int close(int fd);
fd:关闭哪个文件描述符
返回值:
成功返回0,失败返回-1
read:读取指定文件的内容
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
fd:读取哪个文件
buf:读取的内容存放到哪里去
count:读取多少字节的数据
返回值:
成功返回读取到多少个字节
失败返回-1
write:写入内容到指定的文件
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
fd:写入哪个文件
buf:写入的内容是什么
count:写入多少个字节
返回值:
成功返回写入多少个字节
失败返回-1
lseek:定位操作位置
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
fd:重置哪个文件
offset:偏移多少个单位(字节)
whence:从哪里开始偏移
SEEK_SET:文件开头
SEEK_CUR:文件当前操作位置
SEEK_END:文件末尾
返回值:
成功返回定位的位置距离头部有多少个字节
失败返回-1
以上函数的errno都会被设置,都可以引用perror函数进行错误信息打印