書式
#include <dirent.h>
long telldir(DIR *dirp);
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
telldir(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE
説明
telldir() 関数は、ディレクトリストリーム dirp に結びつけられた 現在位置を返す。返り値
成功した場合、 telldir() 関数はディレクトリストリーム中の現在位置を返す。 エラーの場合、-1 が返されて、 errno が適切に設定される。エラー
- EBADF
- ディレクトリストリームディスクリプタ dirp が無効である。
属性
マルチスレッディング (pthreads(7) 参照)
telldir() 関数はスレッドセーフである。準拠
4.3BSD, POSIX.1-2001.注意
バージョン 2.1.1 以前の glibc では、 telldir()9 の返り値の型は off_t であった。 POSIX.1-2001 では long と規定されており、glibc 2.1.2 以降では long になっている。初期のファイルシステムでは、 telldir() が返す値は単なるディレクトリ内のファイルオフセットであった。新しめのファイルシステムでは、ディレクトリを表現するのに、フラットなテーブルではなく、ツリーやハッシュ構造が使用されている。このようなファイルシステムでは、 telldir() が返す値 (および readdir(3) が内部で使用する値) は、ディレクトリ内での値を示すのにファイルシステム実装が使っている "cookie" となる。アプリケーションプログラムでは、必ずこの値を内容を意識せず単なる値として扱うべきであり、その内容について前提を持つべきでは「ない」。
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。