C語言之symlink

函數原型:函數

#include <unistd.h>
int symlink(const char * oldpath, const char * newpath);

 

函數說明:測試

symlink()以參數newpath 指定的名稱來創建一個新的鏈接(符號鏈接)到參數oldpath 所指定的已存在文件. 參數oldpath 指定的文件不必定要存在, 若是參數newpath 指定的名稱爲一已存在的文件則不會創建鏈接.spa

 

返回值:指針

成功則返回0, 失敗返回-1, 錯誤緣由存於errno.code

 

錯誤代碼:blog

一、EPERM 參數oldpath 與newpath 所指的文件系統不支持符號鏈接。內存

二、EROFS 欲測試寫入權限的文件存在於只讀文件系統內。原型

三、EFAULT 參數oldpath 或newpath 指針超出可存取內存空間。io

四、ENAMETOOLONG 參數oldpath 或newpath 太長。class

五、ENOMEM 核心內存不足。

六、EEXIST 參數newpath 所指的文件名已存在。

七、EMLINK 參數oldpath 所指的文件已達到最大鏈接數目。

八、ELOOP 參數pathname 有過多符號鏈接問題。

九、ENOSPC 文件系統的剩餘空間不足。

十、EIO I/O 存取錯誤。

 

實例:

/***
symlink.c
***/
#include<unistd.h>
#include<errno.h>
#include<stdio.h>

int main()
{
    int iRet = symlink("/etc/passwd","pass");
    if (0 == iRet)
    {
        printf("symlink success \n");
    }
    else
    {
        perror("symlink err");
    }
    return 0;
}

 

運行結果:

相關文章
相關標籤/搜索