文件权限操作

朱老师核心课程笔记
文件权限的操作

一. 文件权限操作
open flag位

Ⅰ 读写权限

  • O_RDONLY 只读
  • O_WRONLYO 只写
  • O_RDWRO_RDWR 读写

Ⅱ 打开存在并有内容的文件

  • Q_APPEND
    ① 追加文件内容,在原内容的基础上接续新内容
  • O_TRUNC
    ① 清空原来的文件内容,新内容替代旧内容;
    ② 不使用则不清空原内容

*在上文文件读写操作过程中,发现写入的文件内容覆盖了原内容
*原文件内容

root@ubuntu:/mnt/hgfs/winshare/fight# cat a.txt
hello world

*写入文件后

root@ubuntu:/mnt/hgfs/winshare/fight# cat a.txt
hello manld

*只剩下最后ld两位

*原因:
没有加O_APPEND

fd = open("a.txt", O_RDWR | O_APPEND);

*修正后

root@ubuntu:/mnt/hgfs/winshare/fight# cat a.txt
hello manld
hello man

Ⅲ 打开不存在的文件

  • O_CREAT
    ① 为了打开一个未创建的文件,创建并打开;
    ② 如果文件存在则删除原文件,创建新文件
    ③ mode 指定权限
    可读可写不可执行 0666

  • O_EXCL
    ① 如果要创建一个新文件,但是命名了已有文件名,会报错;
    ② 创建已有文件名时,报错;
    ③ 创建为创建文件名时,创建该新文件

Ⅳ 阻塞与非阻塞

  • O_NONBLOCK
    ① 阻塞与非阻塞(阻塞时函数不能立刻返回,任务完成;非阻塞函数立即返回,任务不一定完成);
    ② 只用于设备文件,而不用于普通文件

  • O_SYNC
    ① write阻塞等待底层完成写入才返回应用层;
    ② 无O_SYNC时,open函数中的代码会存在底层buf中,等待硬盘一次性存入,提升硬盘使用寿命和效率。

二. 进程

  • 在main中用return,一般程序正常结束为return 0,异常为return -1;

  • 正式终止进程应该是使用 exit,_Exit,_exit

    #include <stdlib.h>

        void exit(int status);
    

    #include <unistd.h>

        void _exit(int status);
    

    #include <stdlib.h>

        void _Exit(int status);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值