Linux 文件操作与监控全解析
1. 文件的解除链接操作
解除链接(Unlinking)是指从文件系统中移除路径名的操作,与链接操作相反。可以使用 unlink() 系统调用完成该任务,其原型如下:
#include <unistd.h>
int unlink (const char *pathname);
- 若调用成功,
unlink()会从文件系统中删除pathname,并返回 0。若该名称是文件的最后一个引用,则文件会从文件系统中删除。但如果有进程打开了该文件,内核会在该进程关闭文件后才删除文件。 - 若
pathname是符号链接,被销毁的是链接本身,而非目标文件。 - 若
pathname是其他特殊文件(如设备、FIFO 或套接字),特殊文件会从文件系统中移除,但已打开该文件的进程仍可继续使用。
unlink() 调用出错时会返回 -1,并将 errno 设置为以下错误代码之一:
| 错误代码 | 描述 |
| ---- | ---- |
| EACCESS | 调用进程没有对 pathname 父目录的写权限,或对 pathname 中的某个组件没有搜索权限 |
| EFAULT |
超级会员免费看
订阅专栏 解锁全文
2901

被折叠的 条评论
为什么被折叠?



