UC中常用的文件操作函数:
1.int open(const char* pathname, int flag, mode_t mode);:文件打开,成功返回文件描述符,失败返回-1。传入参数解释如下:
(1)const char* pathname : 显而易见为文件路径
(2)int flag :其可以取:
O_RDONLY - 只读
O_WRONLY -只写
O_RDWR -读写
(以上三个只能选一)
O_APPEND - 在已有文件后追加。
O_CREAT - 创建,不存在则创建,存在则打开,只有有creat,mode参数才有效。但是要是和以下两个属性合用,mode参数没用。
O_EXCL - 排他,就是存在了就失败了。
O_TRUNC - 清空,同时有O_WRONLY和O_RDWR属性。
O_SYNC - 写同步,在数据被写到磁盘之前操作不会完成。
(3)mode_t mode:创建文件的权限模式,三位8进制数。0XXX。从左到右分别为拥有者用户,同组用户和其他用户。(笼统解释就是一位八进制数转换为二进制,每一位代表一个权限,0为禁止1为可行。其中4为可读,2为可写,1为可执行,那么最大7就是4+2+1可读可写可执行)
但是实际上所创建的文件权限还和umask有关,真正的权限计算公式为mode&~umask。