Linux中的链接函数unlink

Linux中的链接函数unlink

unlink的作用
1.删除一个文件的目录项并减少它的链接数,若成功则返回0,否则返回-1,错误原因存于errno。
2.如果想通过调用这个函数来成功删除文件,你就必须拥有这个文件的所属目录的写和执行权限。

unlink的使用
1. 如果是符号链接,删除符号链接
2. 如果是硬链接,硬链接数减1,当减为0时,释放数据块和inode
3. 如果文件硬链接数为0,但有进程已打开该文件,并持有文件描述符,则等该进程关闭该文件时,kernel才真正去删除该文件

在Linux编写程序验证unlink的作用

#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
int main()
{
	//创建一个临时文件
	int fd=open("tempfile",O_CREAT | O_RDWR,0755);
	if(fd==-1)
	{
		perror("open");
		exit(0);
	}
	//使用unlink删除文件
	int ret=unlink("tempfile");
	if(ret==-1)
	{
		perror("unlink");
		exit(0);
	}
	char buf[512];
	write(fd,"hello Linux\n",12);
	//将文件指针复原到其实位置
	lseek(fd,0,SEEK_SET);
	int len=read(fd,buf,sizeof(buf));
	write(STDOUT_FILENO,buf,len);
	close(fd);
	return 0;
}

验证完成后确实发现,字符串输出在了屏幕中,但是目录里面没有新的文件出现,说明unlink确实在程序结束的时候删除了临时文件.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值