了解link函数前需了解传入传出参数的类型:
1. 指针作为函数参数;
2. 在函数调用之前,指针指向的空间有实际意义;
3. 在函数内部,先做读操作,后读写操作;
4. 函数调用结束后,充当函数返回值
Link函数介绍
Link函数原型 int link (const char *oldpath, const char *newpath)成功:0,失败:-1 设置error 为相应值
unlink函数介绍
unlink函数原型 int link (const char *pathname);成功:0,失败:-1 设置error 为相应值
Unlink函数的特征:清楚文件时,如果文件的硬链接数到0了,没有dentry对应,但该文件扔不会马上被释放,要等到所有打开该文件的进程关闭该文件,系统才会挑时间将该文件释放掉
Demo(test.c)测试程序如何运用link函数及unlink函数
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include<unistd.h>
#include<pthread.h>
Int main( int arg, char *argv[])
{
Link(argv[1], argv[2]); //传入两个文件,等同于ln 命令
Unlink(argv[1]); //删除文件1,等同于rm 命令
Return 0;
}
编译test.c 方法命令:make test 或者 gcc test.c -o test
执行该命令 ./test a.c b.c //该命令即实现了删除a.c文件
隐式回收
当进程结束运行时,所有该进程打开的文件会被关闭,申请的内存空间会被释放,系统的这一特征称之为隐式回收系统资源。