您的位置:首页 > 编程语言

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

2015-03-13 09:24 204 查看
命令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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: