曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 7217|回复: 0
打印 上一主题 下一主题

[文件I/O] symlink() -- 创建符号链接 | readlink() -- 读取符号链接

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2010-6-20 00:42:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原型
#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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 00:19 , Processed in 0.064921 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表