系统调用方式创建文件 :
int creat(const char *filename,mode_t mode)
filename :要创建的文件名 包含路径,缺省为当前路径
mode : 创建模式
S_IRUSR 可读 >> 4
S_IWUSR 可写 >> 2
S_IXUSR 可执行 >> 1
S_IRWXU 可读 写 执行 >>7
无任何权限为 0。
文件描述符本质是一个非负整数 有效值为0-OPEN_MAX
打开文件:
int open(const cahr* pathname,int flags)
int open(const cahr* pathname,int flags,mode_t mode)
pathname: 要打开的文件名 包含路径,缺省为当前路径
flags: 打开 标志
O_RDONLY 只读凡是打开
O_WRONLY 只写方式打开
O_RDWR 读写方式打开
O_APPEND 追加方式打开
O_CREAT 创建一个文件
O_NOBLOCK 非阻塞方式打开
如果使用了 O_CREAT 标志则使用 int open(const cahr* pathname,int flags,mode_tmode) 函数 指定mode来表示文件访问权限。
int read(int fd,const void*buf,size_t length)
从文件描述符fd指定的文件中读取length个字节到buf指向的缓冲区中,返回值为实际读取的字节数。
int write(int fd,const void*buf,size_t length)
int Iseek(int fd,offset_t offset ,int whence)
将文件读写指针相对whence移动offset个字节,成功返回文件指针相对于文件头的位置。
whence : SEEK_SET 相对文件开头
SEEK_CUR 相对于当前位置
SEEK_END 相对文件末尾
offset 为负值表示向前移动。
判断一个文件的属性:
int access(const char* pathname ,int mode)
mode: R_OK: 文件可读
W_OK:文件可写
X_OK: 文件可执行
F_OK:文件存在
测试成功时返回0 否则返回-1;