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
總結
以上是生活随笔為你收集整理的link,unlink,remove, rename函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Echarts自动刷新数据
- 下一篇: 一文让你彻底了解大数据实时计算引擎 Fl