曲径通幽论坛

标题: symlink() -- 创建符号链接 | readlink() -- 读取符号链接 [打印本页]

作者: beyes    时间: 2010-6-20 00:42
标题: symlink() -- 创建符号链接 | readlink() -- 读取符号链接
原型
#include <unistd.h>
int symlink(const char *oldpath, const char *newpath);
ssize_t readlink(const char *path, char *buf, size_t bufsiz);

说明
symlink() 函数创建称为 newpath 的符号链接,该符号链接指向称为 oldpath 的文件。符号链接可以跨越文件系统,并且不会对执行对 oldpath 是否存在的任何检查。一旦创建符号链接,就可以用 readlink() 函数来读取它的内容,以查看它指向何处。

readlink() 函数允许我们确定为 path 的符号链接指向什么内容。路径名的第一个 bufsiz 字节复制到用户提供的缓冲区 buf。当路径名复制到 buf  时,它没有按照我们期望的那样以 NULL 终止,因此必须添加自己的终止标记。

示例代码
#include <unistd.h>
#include <stdio.h>

int main()
{
   
    char buf[128];

    if (symlink ("/home/Programming/system/symlink.c", "/home/groad/symlink_test.c") == -1)
        perror ("symlink");

    readlink ("/home/groad/symlink_test.c", buf, 127);

    buf[128] = '\0';
    printf ("%s\n", buf);

    return (0);
}
运行与输出
 ./symlink
/home/Programming/system/symlink.c





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2