曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5880|回复: 0
打印 上一主题 下一主题

unlink, link, symlink

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2009-2-12 15:42:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用 unlink 可以移除一个文件。

unlink 系统调用移除掉文件的目录入口以及目录里的链接数(link count)减 1 。如果 unlink 成功就返回0,出错就返回 -1。对于这个调用,你必须在一个目录里,这个文件的目录入口处有写和执行权限。

用法
#include <unistd.h>
int unlink(const char *path);
int link(const char *path1, const char *path2);
int symlink(const char *path1, const char *path2);

如果连接数已经为 0 并且没有其它进程打开文件,这个文件就会被删除。事实上,目录入口(directory entry)总是会立即被移除的,但文件空间直到最后一个进程关闭它后才被还原。rm 程序使用这个调用。额外的链接表示一个文件多个可以改变的名字,通常由 ln 程序来创建。你可以通过 link 系统调用创建一个文件的新的链接。

link 系统调用创建一个已经存在文件的一个新的链接(参数path1表示这个文件).新的目录入口由 path2 指定。你可以通过使用 symlink 系统调用来创建一个符号链接。注意,一个文件的符号链接不会增加“文件的参考数”(file's reference count),也不会像普通链接(硬链接)那样阻止文件有效的被删除。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-7 06:05 , Processed in 0.063464 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表