linux系统中怎么调用sys_unlink
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,linux系统中怎么调用sys_unlink,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sys_unlink是删除硬链接的系统调用,引
千家信息网最后更新 2026年11月02日linux系统中怎么调用sys_unlink
linux系统中怎么调用sys_unlink,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
sys_unlink是删除硬链接的系统调用,引用数为0时底层的文件会被删除sys_unlink是删除硬链接的系统调用,引用数为0时底层的文件会被删除
// 删除硬链接
int sys_unlink(const char * name)
{
const char * basename;
int namelen;
struct m_inode * dir, * inode;
struct buffer_head * bh;
struct dir_entry * de;
// 找出路径的最后一级目录的inode和路径中的文件名
if (!(dir = dir_namei(name,&namelen,&basename)))
return -ENOENT;
// 传进来的路径是一个目录
if (!namelen) {
iput(dir);
return -ENOENT;
}
// 权限
if (!permission(dir,MAY_WRITE)) {
iput(dir);
return -EPERM;
}
// 找到路径对应文件的目录项
bh = find_entry(&dir,basename,namelen,&de);
// 不存在
if (!bh) {
iput(dir);
return -ENOENT;
}
// 读取目录项对应的inode节点
if (!(inode = iget(dir->i_dev, de->inode))) {
iput(dir);
brelse(bh);
return -ENOENT;
}
// 权限
if ((dir->i_mode & S_ISVTX) && !suser() &&
current->euid != inode->i_uid &&
current->euid != dir->i_uid) {
iput(dir);
iput(inode);
brelse(bh);
return -EPERM;
}
// 硬链接不能是目录
if (S_ISDIR(inode->i_mode)) {
iput(inode);
iput(dir);
brelse(bh);
return -EPERM;
}
// 没进程引用该inode
if (!inode->i_nlinks) {
printk("Deleting nonexistent file (x:%d), %d\n",
inode->i_dev,inode->i_num,inode->i_nlinks);
inode->i_nlinks=1;
}
// 解除了引用,inode置为0
de->inode = 0;
// 需要回写硬盘
bh->b_dirt = 1;
brelse(bh);
// 引用数减一,在iput中会删除引用数为0的文件
inode->i_nlinks--;
inode->i_dirt = 1;
inode->i_ctime = CURRENT_TIME;
iput(inode);
iput(dir);
return 0;
}
看完上述内容,你们掌握linux系统中怎么调用sys_unlink的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
文件
目录
系统
路径
链接
内容
底层
方法
更多
权限
问题
束手无策
为此
原因
对此
技能
文件名
硬盘
篇文章
经验
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
圆梦互联网科技
美国互联网科技巨头监管
北京互联网科技有限公司
互联网科技的英文
上海喔噻互联网科技
火传媒上海互联网科技
上海卓越科技 互联网
蓝色互联网科技
湖南洣水互联网科技有限公司扣款
互联网科技中介
广州恒生互联网科技有限
港股科技和互联网
西安小鹰速贷互联网科技有限公司
恒生互联网科技业指数调整周期
宇信科技在杭州互联网排第几
西安有哪些互联网高科技企业
萌小萌互联网科技河南有限公司
上海万顺科技互联网有限公司招聘
互联网的科技体现在哪里
河南商务圈互联网科技有限公司
科技平台互联网
互联网科技的英文
苏州互联网科技贷款公司
美国互联网黑科技
中国科技互联网公司收入
昭通互联网科技选哪家
江苏互联网智能科技产品出厂价
唐山双旺合互联网科技产业园
广西泛欧互联网科技有限公司
河南商务圈互联网科技有限公司