readlink()函数
时间: 2023-07-01 14:25:56 浏览: 263
readlink()函数是一个用于读取符号链接内容的系统调用函数。它的原型在头文件<unistd.h>中声明,其函数签名如下:
```
ssize_t readlink(const char *path, char *buf, size_t bufsiz);
```
该函数的参数说明如下:
- path:指向要读取的符号链接的路径。
- buf:指向存储读取结果的缓冲区。
- bufsiz:指定缓冲区的大小。
函数返回值为成功读取的字符数,如果读取失败,则返回-1,并设置errno错误码。
例如,如果要读取符号链接 /tmp/mylink 的内容,可以使用以下代码:
```c
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BUF_SIZE 1024
int main(int argc, char *argv[]) {
char buf[MAX_BUF_SIZE];
ssize_t len;
if ((len = readlink("/tmp/mylink", buf, MAX_BUF_SIZE)) == -1) {
perror("readlink");
exit(EXIT_FAILURE);
}
buf[len] = '\0';
printf("The content of /tmp/mylink is: %s\n", buf);
return 0;
}
```
注意,如果要读取的路径并不是符号链接,则readlink()函数会返回错误码EINVAL。
阅读全文