函数原型:
#include <unistd.h> int symlink(const char * oldpath, const char * newpath);
函数说明:
symlink()以参数newpath 指定的名称来建立一个新的连接(符号连接)到参数oldpath 所指定的已存在文件. 参数oldpath 指定的文件不一定要存在, 如果参数newpath 指定的名称为一已存在的文件则不会建立连接.
返回值:
成功则返回0, 失败返回-1, 错误原因存于errno.
错误代码:
1、EPERM 参数oldpath 与newpath 所指的文件系统不支持符号连接。
2、EROFS 欲测试写入权限的文件存在于只读文件系统内。
3、EFAULT 参数oldpath 或newpath 指针超出可存取内存空间。
4、ENAMETOOLONG 参数oldpath 或newpath 太长。
5、ENOMEM 核心内存不足。
6、EEXIST 参数newpath 所指的文件名已存在。
7、EMLINK 参数oldpath 所指的文件已达到最大连接数目。
8、ELOOP 参数pathname 有过多符号连接问题。
9、ENOSPC 文件系统的剩余空间不足。
10、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 "); } else { perror("symlink err"); } return 0; }
运行结果: