link函数的使用:
/*
该程序主要说明:
int link(const char *existingpath, const char *newpath)
此函数将会创建一个新的目录项newpath,它引用文件existingpath。如果newpath文件已经存在,则返回出错。
*/
#include <unistd.h> //包含函数 link
#include <stdio.h> //标准输出,包含remove函数
#include <fcntl.h> //包含open函数
int main(int argc, char **argv)
{
if(argc != 3)
{
printf("input error !!\n");
return -1;
}
//创建一个临时文件
int fd = -1;
if((fd = open(argv[1],O_CREAT|O_EXCL)) > 0)
{
//如果open函数的返回值大于零,则没有这个文件,且该文件已经创建成功,需要使用remove函数来删除该文件
close(fd);
remove(argv[1]);
//输出错误信息
printf("input file can't be founded !!\n");
return -1;
}
//使用link函数创建一个新的目录项
if(link(argv[1],argv[2]) < 0)
{
printf("link failed !!\n");
return -1;
}
printf("link over !!\n");
return 1;
}
unlink函数的使用:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc,char **argv)
{
if(argc != 2)
{
printf("input error!!\n");
return -1;
}
int fd = -1;
if((fd = open(argv[1],O_CREAT|O_EXCL)) > 0)
{
//如果open函数的返回值大于0,则表示该文件不存在,且已经创建成功
close(fd);
remove(argv[1]);
printf("input file can't be founded!!\n");
return -1;
}
//删除一个现有的目录项
if(unlink(argv[1]) < 0)
{
printf("unlink failed !!\n");
return -1;
}
printf("unlink over!!\n");
return 1;
}