4.15 link、unlink函数-创建和删除硬链接

link函数用于创建一个指向已存在文件的新目录项。函数原型如下:

#include <unistd.h>
int link(const char *existingpath, const char *newpath);

返回值:若成功则返回0,若失败则返回-1

参数:

existingpath 一个以存在文件的路径

newpath 新目录项的路径

一、目录项和硬链接

可以这么理解,不管是fat32还是ext3等文件系统,无论它的管理策略如何复杂,对于这些文件系统之下的一个文件来说都包括两个方面的属性:

数据属性和管理属性。数据属性由数据应用程序来解释,以特定模型来描述,例如网页文件就用html规范模型来描述。文件系统一般不构造这些具体模型来解释它所管理的数据,一切文件数据在文件系统看来都是一个个的0和1。

管理属性是因文件管理目的而产生的。文件系统会用具体的模型来描述文件的管理属性并做精确解释,不同的文件系统下的文件管理属性是有差别的。unix系统可以让多个文件系统同存。在具体的文件系统上层再加一层抽象文件系统,把不同的文件系统的差异屏蔽掉,抽象出一些通用模型,这个模型之一就是stat结构(参考《4.2 stat函数》)。

目录项也是文件的一种管理属性,它是为了方便我们用/tmp/myfile之类的人性化路径操作文件而设计的一种数据结构,也是文件管理属性的一个具体存储结构。

文件系统不应该主动去改变文件的数据属性,它应听从于具体应用程序去改变文件的数据属性。

文件系统可以主

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值