readlink - システムコールの説明 - Linux コマンド集 一覧表
名前
readlink - シンボリック・リンクの値を読む
書式
#include <unistd.h>
ssize_t readlink(const char *
path
, char *
buf
, size_t
bufsiz
);
説明
readlink ()は path で与えられたシンボリック・リンクの内容を buf バッファーへ格納する、 buf のサイズは bufsiz である。 readlink ()は NULL バイトを buf に追加しない。 その内容全てを格納するのにバッファーが小さ過ぎる場合は、 ( bufsiz バイトの長さに) 内容を切り詰める。
返り値
成功した場合にはバッファーに格納された文字数を返す。 エラーが起こった場合には -1 を返し、 errno にエラー・コードを格納する。
エラー
- EACCES
- パスのディレクトリ部分に検索許可が与えられていない ( path_resolution (2)も参照すること)。
- EFAULT
- buf がプロセスに割り当てられたアドレス空間の外を指している。
- EINVAL
- bufsiz が正でない。
- EINVAL
- 指定したファイルがシンボリック・リンクでない。
- EIO
- ファイル・システムの読み込み中に I/O エラーが起こった。
- ELOOP
- パス名にシンボリック・リンクが多すぎる。
- ENAMETOOLONG
- パス名かパス名の一部分が長過ぎる。
- ENOENT
- その名前のファイルが存在しない。
- ENOMEM
- カーネルに十分なメモリがない。
- ENOTDIR
- パスのディレクトリ部分がディレクトリでない。
準拠
4.4BSD ( readlink ()関数コールは 4.2BSD で現われた), POSIX.1-2001.
歴史
バージョン 2.4 以前の glibc (バージョン 2.4 を含む) では、 readlink ()の返り値の型は int で宣言されていた。現在では、返り値の型は ssize_t である (返り値 ssize_t は POSIX.1-2001 で (新たに) 必須となった)。
関連項目
lstat
(2),
path_resolution
(2),
readlinkat
(2),
stat
(2),
symlink
(2)