Unix学习记录(四)(硬链接、软链接)

------文件元数据有哪些?

文件元数据存放在该文件的i节点中。可以用函数获取文件的元数据信息,函数有stat、fstat、lstat。其中lstat函数区别于其他两个的特点是不跟踪符号链接。(符号链接文件是指一个文件中存储的是其他文件的路径信息)。

文件的元数据有设备ID、i节点号、文件类型和权限、硬链接数、拥有者用户ID、拥有者组ID、特殊设备ID、总字节数、最后访问时间、最后修改时间和最后状态改变时间。

其中表示文件类型和权限的字段st_mode,其类型是32位无符号整型,其中只有低16位有效,第12-15位表示文件类型,第9-11位表示设置位(设置用户ID、设置组ID、粘滞位),第6-8表示拥有者用户的权限,第3-5位表示拥有者组的权限,第0-2位表示其他用户的权限。

此外可以使用access函数对文件的是否可读/写/执行的权限进行判断。

------权限掩码的作用?

每个进程都有自己的权限掩码,用于进程创建文件指定权限的时候,屏蔽某些权限。使用函数umask函数可以改变当前进程的权限掩码。

------修改文件的权限:

使用函数chmod和fchmod可以给文件设置新的权限;函数chown和fchown和lchown,可以修改文件拥有者用户和(或)组;函数truncate和ftruncate可以修改文件大小。

------内存映射文件:

之前的学习是虚拟内存到物理内存的映射,还有一种是虚拟内存和磁盘文件之间建立映射关系,这样可按照访问内存的方式操作磁盘文件,不必使用专门的文件I/O接口,同时也可将其视为一种在不同进程之间交换数据的方法。函数mmap用于创建映射,函数munmap用于解除映射。

特点:一个进程结束,但磁盘文件一直存在,另一个进程可读取,这就突破了时间和进程的限制,但是虚拟内存的映射一释放,就什么都读取不到,这种属于形式上的进程间通信,真正意义上的进程间通信是类似管道、共享内存、消息队列等。

------什么是硬链接?

硬链接的本质是目录文件里一个文件名和i节点号的对应条目。根据一个已有的硬链接创建一个新的硬链接,两者的文件名不一样,i节点号一样,指向的也是同一个文件。函数link可以创建硬链接,函数unlink可以删除硬链接,函数rename可以修改硬链接。

------什么是软链接?

软链接的本质是一个文件里保存着另一个文件的路径。看起来是访问软链接,其实操作的是其目标文件。函数symlink创建软链接,函数readlink读取软链接文件的内容。

------目录:

使用函数mkdir创建空目录,使用函数rmdir删除一个空目录,函数qetcwd获取当前工作目录,chdir函数切换调用进程的当前工作目录,函数opendir打开目录流,函数closedir关闭目录流。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值