1、创建文件
int create(const char* filename , mode_t mode) 创建文件。filename为文件路径,mode为文件权限,如:S_IRUSR 可读;S_IRWXU 可读、可写、可执行。也可以用数字表示,如:0755。
2、文件描述
在Linux中,所有打开的文件都对应一个文件描述,它是一个非负整数,同文件流一一对应。
3、打开文件
int open(const char *pathname,int flags)
int open(const char *pathname,int flags,mode_t mode)
常见的打开标志:
O_RDONLY 只读打开
O_WRONLY 只写打开
O_RDWR 读写打开
O_TRUNC 重新创建打开
O_APPEND 追加打开
O_CREAT 创建打开
O_NOBLOCK 非阻塞打开
[注意] 如果使用创建打开,这时要指定mode。
成功打开返回文件描述符,否则返回-1。
4、读
int read(int fd,const void *buf,size_t length)
从fd指定的文件中读取length个字节到buf中。返回值为实际读入的字节数。
5、写
int write(int fd,const void *buf,size_t length)
把length个字节从buf指向的缓冲区中写到fd指向的文件中。返回值为实际写入的字节数。
6、移动文件指针
int lseek(int fd, offset_t offset,int whence)
将文件的读写指针相对whence移动offset个字节。操作成功时,返回文件指针相当于文件头的偏移。whence有:
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
offset通常为正整数,也可以为负数,表示向前移动。
7、访问判断
int access(const char* pathname,int mode)
pathname是文件名。mode为:R_OK 、W_OK、X_OK、F_OK(文件存在)。成功返回0,一个条件不符就返回-1。