打开文件以前检验进程是否已经访问过该文件:
#include <unistd.h>
int access(char *pathname,int mode);
正确返回:1
错误返回:0
pathname:希望检验的文件名
mode:包含在unistd.h中的以下值之一
R_OK -------- 进程是否有过读文件
W_OK ------- 进程是否有过写文件
X_OK -------- 进程是否有过执行文件
F_OK -------- 检验规定的文件是否存在
创建新文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int creat(const char* pathname,mode_t mode);
等价于:
open(pathname,O_WRONLY | O_CREAT | O_TRUNC,mode);
读文件
#include <unistd.h>
ssize_t read(int fd,void *buf,size_t nbytes);
正确返回:0或者字节数
错误返回:-1
fd: 文件描述符
buf:指向内存块的指针
nbytes:复制到buf中字节个数的计数
写文件
#include <unistd.h>
ssize_t write(int fd,void *buf,size_t nbytes);
关闭文件
#include <unistd.h>
int close(int fd);
正确返回:0
错误返回:-1
随机文件操作
#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 文件结束处计算
在<sys/types.h>中有定义off_t类型为:typedef long off_t;