zoukankan      html  css  js  c++  java
  • link,unlink,remove, rename函数

    link函数:创建一个指向现有文件的链接的方法是使用

    个人理解为cp命令

    #include <unistd.h>
    int link( const char *existingpath, const char *newpath );
                                     返回值:若成功返回0,若出错返回-1

    此函数创建一个新目录项newpath,它引用现有的文件existingpath。如若newpath已经存在,则返回出错。

    只创建newpath中的最后一个分量,路径中的其他部分应当已经存在。

    创建新目录项以及增加链接计数应当是个原子操作。

    unlink函数:删除一个现有的目录项,可以调用unlink函数

    个人理解为rm命令

    #include <unistd.h>
    int unlink( const char *pathname );
    返回值:若成功则返回0,若出错则返回-1

    此函数删除目录项,并将由pathname所引用文件的链接计数减1。

    如果还有指向该文件的其他链接,则仍可通过其他链接访问该文件的数据。如果出错,则不对该文件做任何更改。

    为了解除对文件的链接,必须对包含该目录项的目录具有写和执行的权限。如果对该目录设置了粘住位,则对该目录必须具有写权限,并且具备下面三个条件之一:

    拥有该文件。

    拥有该目录。

    具有超级用户特权。

    实例:前提得存在bar

    #include "apue.h"
    #include <fcntl.h>

    int main()
    {
      if (open("bar",O_RDWR)<0)
      err_sys("open error");
      if (unlink("bar")<0)
      err_sys("unlink error");
      printf("file unlink ");
      sleep(15);
      printf("done ");
      exit(0);

    }

    remove函数解除对一个文件或目录的链接,

    对于文件,remove的功能与unlink相同。对于目录,remove的功能与rmdir相同。

    #include <stdio.h>
    int remove( const char *pathname);
    返回值:若成功则返回0,若出错则返回-1

    rename函数对文件或目录更名

    #include <stdio.h>
    int rename( const char *oldname, const char *newname );
    返回值:若成功则返回0,若出错则返回-1
  • 相关阅读:
    使用模拟器混淆前端代码
    中间人攻击 -- Cookie 喷发
    【探索】机器指令翻译成 JavaScript
    复杂的 Hash 函数组合有意义吗?
    【探索】利用 canvas 实现数据压缩
    【趣事】用 JavaScript 对抗 DDOS 攻击 (下)
    【趣事】用 JavaScript 对抗 DDOS 攻击
    【探索】在 JavaScript 中使用 C 程序
    【探索】无形验证码 —— PoW 算力验证
    对抗明文口令泄露 —— Web 前端慢 Hash
  • 原文地址:https://www.cnblogs.com/hezhangyear/p/4031661.html
Copyright © 2011-2022 走看看