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;
}

 

运行结果:

相关文章
相关标签/搜索