命令od 用来显示文件的内容
od -c t
选项 -c 以字符方式打印文件内容
第一列 是用 八进制 标志文件 的字节偏移量
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