readlink
定义函数:int readlink(const char * path, char * buf, size_t bufsiz);
函数说明:readlink()会将参数path 的符号连接内容存到参数buf 所指的内存空间, 返回的内容不是以NULL作字符串结尾, 但会将字符串的字符数返回. 若参数bufsiz 小于符号连接的内容长度, 过长的内容会被截断.
返回值:执行成功则传符号连接所指的文件路径字符串, 失败则返回-1, 错误代码存于errno.
错误代码:
1、EACCESS 取文件时被拒绝, 权限不够。
2、EINVAL 参数bufsiz 为负数。
3、EIO I/O 存取错误。
4、ELOOP 欲打开的文件有过多符号连接问题。
5、ENAMETOOLONG 参数path 的路径名称太长。
6、ENOENT 参数path 所指定的文件不存在。
7、ENOMEM 核心内存不足。
8、ENOTDIR 参数path 路径中的目录存在但却非真正的目录。
access
#include<unistd.h>
int access(const char* pathname, int mode);
参数介绍:
pathname 是文件的路径名+文件名
mode:指定access的作用,取值如下
{
F_OK 值为0,判断文件是否存在
X_OK 值为1,判断对文件是可执行权限
W_OK 值为2,判断对文件是否有写权限
R_OK 值为4,判断对文件是否有读权限
}
注:后三种可以使用或“|”的方式,一起使用,如W_OK|R_OK
返回值:成功0,失败-1
assert
断言,条件不满足调用C库函数abort 终止程序