函数原型:函数
#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; }
运行结果: