UNIX环境编程 文件I/O 文件和目录

命令od 用来显示文件的内容

od -c  t    

选项 -c  以字符方式打印文件内容

0000000   1       2       3  \n
0000006

第一列 是用 八进制 标志文件 的字节偏移量


ls -ls 的第一列标志 文件占用的磁盘块。


具有空洞的文件,会虽然文件大小 很正常文件是一样的,但是 会占用更多的 磁盘块。


块长是 4096 ,当读写的 BUFFSIZE = 4096时 性能最好。


文件共享 

打开文件的 内核数据结构 

每个文件   都可以  对当前文件的 当前偏移量。


原子操作

任何一个需要 多个函数调用 操作都不能是 原子操作。


打开文件是 使用 O_APPEND 可以是这种操作成为源自操作 。


原子操作,要么都执行完,要么一步也不执行。


dup 复制文件描述符。

延迟写 减少了磁盘读写次数,却降低了文件内容的更新速度。


同步写,write写到磁盘上才返回,适用于 数据库。

ioctl() 在嵌入式中用的很多


在shell中 键入 \  shell就只到你没有输入完成,将在下一行继续输入。


设置用户ID,使得执行者 拥有 文件所有者一样的权利。


向进入一个目录,必须对该目录文件具有 可执行权限。


root用户,用户id是0,有一切权限。

先查看所有者权限,

再看组

再看other。


当一个文件,没有可执行权限, 即没有x的时候,给他u+s, 这样会使得 ls -l 的时候,看见的是一个大写的S,而不是小写的s。

u+s 是 打开设置用用户ID位,即 任何人执行该文件,就像是该文件的所有者 自己执行一样。


umask 屏蔽位 ,umask屏蔽的为,在默认创建文件的时候就 没有改权限了 。

修改方法,在shell中有命令 : umask 027 创建出来的文件 ,other的权限是 0 ,因为 7 就把所有的权限都给屏蔽了。


chmod改变现有 文件的访问 权限。


想要改变一个文件,有效ID,必须是文件的 所有者ID,或者,你是超级管理root。


ln 不能跨文件系统。


创建一个文件 立即调用unlink ,这样在 进程关闭的时候,这个文件 会自动被删除。


即使是专家,也不会瞎搞, 搞应用层的,应该,是,按图索骥。


文件修改时间有两个,一个是 文件内容的修改时间,一个 是 文件权限的修改时间 。 比如只修改一个文件的 权限,而并不改变文件的内容,那么就是一个改变而另一个不改变。

对应的是ls -t -u -c











 








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值