READLINK(2)

名前
readlink - シンボリック・リンクの値を読む

書式
#include <unistd.h>

int readlink(const char *path, char *buf, size_t bufsiz);

説明
readlink は path で与えられたシンボリック・リンクの内容を buf バッファーへ格納する、 buf のサイズは bufsiz である。 readlink は ヌル(NUL)文字 を buf に追加しない。 その内容全てを格納するのにバッファーが小さ過ぎる場合は、( bufsiz バイトの長さに)内容を切り詰める。

返り値
成功した場合にはバッファーに格納された文字数を返す。エラーが 起こった場合には -1 を返し、 errno にエラー・コードを格納する。

エラー

ENOTDIR
    パスのディレクトリ成分がディレクトリでない。

EINVAL
    bufsiz が正でない。

ENAMETOOLONG
    pathname か pathname の一部分が長過ぎる。

ENOENT
    その名前のファイルが存在しない。

EACCES
    パスのディレクトリ部分に検索許可が与えられていない。

ELOOP
    pathname にシンボリック・リンクが多すぎる。

EINVAL
    指定したファイルがシンボリック・リンクでない。

EIO ファイル・システムの読み込み中に I/O エラーが起こった。

EFAULT
    buf がプロセスに割り当てられたアドレス空間の外を指している。

ENOMEM
    カーネルに十分なメモリがない。

準拠
4.4BSD ( readlink 関数コールは 4.2BSD で現われた)

関連項目
stat(2), lstat(2), symlink(2)