link() 和 unlink()函数示例

link函数的使用:
/*
该程序主要说明:
   int link(const char *existingpath, const char *newpath)
此函数将会创建一个新的目录项newpath,它引用文件existingpath。如果newpath文件已经存在,则返回出错。 
*/

#include              //包含函数 link
#include               //标准输出,包含remove函数
#include               //包含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 
#include 
#include 
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;
}


你可能感兴趣的:(C,linux)