详解C语言中symlink()函数和readlink()函数的使用C语言symlink ()函数)文件创建符号连接头文件) #include定义函数) intsymlink(constchar*oldpath,const char 函数说明: symlink ) )使用在参数newpath中指定的名称建立到由参数oldpath指定的现有文件的新连接(符号连接)。 由参数oldpath指定的文件不一定必须存在。 如果参数newpath指定的名称是现有文件,则不会建立连接。 返回值:成功返回0,失败返回-1,发生错误
1、EPERM参数oldpath和newpath指向的文件系统不支持符号连接。
2、EROFS要测试写入权限的文件存在于只读文件系统中。
3、EFAULT参数oldpath或newpath指针超出了可访问的内存区域。
4、名称too long参数oldpath或新路径太长。
5、ENOMEM核心内存不足。
6、EEXIST参数newpath指向的文件名已经存在。
7、EMLINK参数oldpath指向的文件已达到最大连接数。
8、ELOOP参数pathname存在太多的符号连接问题。
9、ENOSPC文件系统可用空间不足。
10、EIO I/O访问错误。 示例#include main () symlink(/etc/passwd )、’ pass ); }
c语言的readlink ) )函数:用于获取符号链接的文件头(#include定义函数intreadlink ) constchar*Path、char * buf、size_t bufsiz ) 函数说明: readlink ) )将参数path的符号链接的内容保存在参数buf指向的内存空间中。 返回值以NULL结尾,但返回字符串中的字符数。 如果参数bufsiz小于符号链接的内容长度,则会截断过长的内容。 返回值)如果执行成功,则传递符号链接指向的文件路径字符串;如果失败,则返回-1,错误代码
1、EACCESS在取件时被拒,权限不够。
2、EINVAL参数bufsiz为负数。
3、EIO I/O访问错误。
4、ELOOP要打开的文件存在太多符号连接问题。
5、名称too long参数path的路径名太长。
6、ENOENT参数path指定的文件不存在。
7、ENOMEM核心内存不足。
8、ENOTDIR参数路径中存在目录,但不是真实目录。
快三大小单双位技巧准确率99asswd )、’ pass ); }
c语言的readlink ) )函数:用于获取符号链接的文件头(#include定义函数intreadlink ) constchar*Path、char * buf、size_t bufsiz ) 函数说明: readlink ) )将参数path的符号链接的内容保存在参数buf指向的内存空间中。 返回值以NULL结尾,但返回字符串中的字符数。 如果参数bufsiz小于符号链接的内容长度,则会截断过长的内容。 返回值)如果执行成功,则传递符号链接指向的文件路径字符串;如果失败,则返回-1,错误代码
1、EACCESS在取件时被拒,权限不够。
2、EINVAL参数bufsiz为负数。
3、EIO I/O访问错误。
4、ELOOP要打开的文件存在太多符号连接问题。
5、名称too long参数path的路径名太长。
6、ENOENT参数path指定的文件不存在。
7、ENOMEM核心内存不足。
8、ENOTDIR参数路径中存在目录,但不是真实目录。