stat、fstat、lstat、statx、fstatx、statxat、fstatat、fullstat、ffullstat、 stat64、 fstat64、 lstat64、 stat64x、 fstat64x、 lstat64x、または stat64xat サブルーチン

目的

ファイルまたは共有メモリー・オブジェクトに関する情報を提供します。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <sys/stat.h>
int stat (Path, Buffer)
const char *Path;
struct stat *Buffer;
int fstatat (DirFileDescriptor, Path, Buffer, Flag)
int DirFileDescriptor;
const char * Path;
struct stat * Buffer;
int Flag;
int lstat (Path,Buffer)
const char *Path;
struct stat *Buffer;
int fstat (FileDescriptor, Buffer)
int FileDescriptor;
struct stat *Buffer;
int statx (Path, Buffer, Length, Command)
char *Path;
struct stat *Buffer;
int Length;
int Command;
int statxat (DirFileDescriptor, Path, Buffer, Length, Command)
int DirFileDescriptor;
char * Path;
struct stat *Buffer;
int Length;
int Command;
int fstatx (FileDescriptor, Buffer, Length, Command)
int FileDescriptor;
struct stat *Buffer;
int Length;
int Command;
int stat64 (Path, Buffer)
const char *Path;
struct stat64 *Buffer;
int stat64at (DirFileDescriptorPath, BufferFlag)
int DirFileDescriptor
const char *Path;
struct stat64 *Buffer;
int Flag;
int lstat64 (Path, Buffer)
const char *Path;
struct stat64 *Buffer;
int fstat64 (FileDescriptor, Buffer)
int FileDescriptor;
struct stat64 *Buffer;
int stat64x (Path,Buffer)
const char *Path;
struct stat64x *Buffer;
int stat64xat(DirFileDescriptor, Path, Buffer, Flag)
int DirFileDescriptor;
const char * Path;
struct stat64x * Buffer;
int Flag;
int lstat64x (Path,Buffer)
const char *Path;
struct stat64x *Buffer;
int fstat64x (FileDescriptor,Buffer)
int FileDescriptor;
struct stat64x *Buffer;
#include <sys/fullstat.h>
int fullstat (Path,Command, Buffer)
struct fullstat *Buffer;
char *Path;
int Command;
int ffullstat (FileDescriptor,Command, Buffer)
int FileDescriptor;
int Command;
struct fullstat *Buffer;

説明

stat サブルーチンは、 Path パラメーターで指定されたファイルに関する情報を取得します。 指定されたファイルに対する読み取り権限、書き込み権限、または実行権限は必要ありませんが、ファイルに至るパスにリストされているすべてのディレクトリーが検索可能でなければなりません。 stat 構造体のサブセットであるファイル情報は、 Buffer パラメーターによって指定された領域に書き込まれます。

lstat サブルーチンは、シンボリック・リンクであるファイルに関する情報を入手します。 lstat サブルーチンはリンクに関する情報を戻し、 stat サブルーチンはリンクによって参照されるファイルに関する情報を戻します。

fstat サブルーチンは、 FileDescriptor パラメーターによって参照されるオープン・ファイルまたは共用メモリー・オブジェクトに関する情報を入手します。 fstatx サブルーチンは、 fstat サブルーチンの場合と同様に、 FileDescriptor パラメーターによって参照されるオープン・ファイルまたは共用メモリー・オブジェクトに関する情報を入手します。

このst_mode,st_dev,st_uid,st_gid,st_atime,st_ctimeおよびst_mtimestat 構造体のフィールドには、すべてのファイル・タイプについて意味のある値があります。 statxstatlstatfstatxfstatfullstatまたは ffullstat サブルーチンは、st_nlinkファイルへのリンクの数と等しい値になります。

statx サブルーチンは、 stat サブルーチンよりも大きなファイル情報のセットを取得します。 Path パラメーターの処理方法は、 Command パラメーターの内容によって異なります。 Command パラメーターは、マウント・ポイントおよび隠しディレクトリーに関する情報だけでなく、シンボリック・リンクに関する情報 ( lstat サブルーチンと同様) も収集する機能を提供します。 statx サブルーチンは、 Length パラメーターで指定された量の情報を戻します。

fullstat および ffullstat サブルーチンは、後方互換性のために維持されているインターフェースです。 一部のフィールド名を除き、 fullstat 構造体は stat 構造体と同じです。

stat64lstat64、 および fstat64 サブルーチンは、 stat, lstatと似ています。 fstat サブルーチンは、 stat 構造体の代わりに stat64 構造体にファイル情報を戻すという点を除きます。 この情報は、以下の点を除き、同一です。st_sizeフィールドは 64 ビット・サイズとして定義されます。 これにより、 stat64lstat64、 および fstat64 は、 OFF_MAX (2 ギガバイト-1) より大きいファイル・サイズを戻します。

ラージ・ファイル使用可能プログラミング環境では、 statstat64になるように再定義されます。 lstatlstat64 に再定義され、 fstatfstat64に再定義されます。

stat64xlstat64x、 および fstat64x サブルーチンは、 stat, lstatと似ています。 fstat サブルーチンは、 stat 構造体の代わりに stat64x 構造体にファイル情報を戻すという点を除きます。 この情報は、フィールド st_devst_inost_rdevst_sizeが 64 ビット・サイズとして定義されていること以外は同じです。 st_atimest_mtimest_ctimest_blksize、および st_blocks
注: 64 ビットの st_dev フィールドには、常に 64 ビットのデバイス ID が含まれます。最初の 2 ビットは予約済み、次の 30 ビットはデバイスのメジャー番号、次の 32 ビットはデバイスのマイナー番号です。

これにより、 stat64xfstat64x、および lstat64x は、アプリケーションのモードまたはアプリケーションが実行されているカーネルに関係なく、指定された情報を不変の 64 ビット・サイズで戻すことができます。

i-node番号がstat構造体で表現できる最大数より大きい場合、返されるi-node番号は-11の値を持つ。 この場合、stat64xサブルーチンを使用して正確なi-node番号を取得する。

statxatサブルーチンは、DirFileDescriptorパラメータがAT_FDCWDであるか、Pathパラメータが絶対パス名である場合、statxサブルーチンと同等である。 DirFileDescriptorているディレクトリの有効なファイル記述子であり、Pathが相対パス名である場合、Pathは、現在の作業ディレクトリではなく、DirFileDescriptorパラメータに関連付けられたディレクトリからの相対パスであるとみなされる。

同様に、 fstatatstat64at、 または stat64xat サブルーチンは、 statstat64、 または stat64x サブルーチン、それぞれ Flag パラメーターに AT_SYMLINK_NOFOLLOW ビットが設定されていない場合は、 statx および statxat と同じ方法で。

Flag パラメーターの fstatatAT_SYMLINK_NOFOLLOW ビットが設定されている場合、 stat64at、 または stat64xat サブルーチンの場合、これは lstatlstat64、 または lstat64x サブルーチンのいずれかです。

パラメーター

DirFileDescriptor
オープン・ディレクトリーのファイル・ディスクリプターを指定します。
パス
ファイルを識別するパス名を指定します。 この名前の解釈は、使用されるインターフェースによって異なります。 DirFileDescriptorが指定され、Pathが相対パス名の場合、PathDirFileDescriptor で指定されたディレクトリからの相対パスとみなされる。
フラグ
ビット・フィールドを指定します。 AT_SYMLINK_NOFOLLOW ビットが含まれており、 Path がシンボリック・リンクを指している場合は、そのシンボリック・リンクの情報が返されます。
FileDescriptor
オープン・ファイルまたは共用メモリー・オブジェクトを識別するファイル記述子を指定します。
注: FileDescriptor パラメーターが共有メモリー・オブジェクトを参照する場合、 統計 構造体の 標準 UID標準 ID標準サイズ、および 標準モード フィールドのみが埋められ、 IRUSR (R)IWUSRIRGRPIWGRPS_IROTH (I)、および IWOTH ファイル許可ビットのみが有効です。
buffer
情報が戻される stat 構造体へのポインターを指定します。 stat 構造体は、 <sys/stat.h> ファイルに記述されます。
長さ
戻される情報の量をバイト単位で示します。 0 から STATXSIZE マクロによって返される値 (両端の値を含む) までの任意の値を指定できます。 以下のマクロを使用できます。
STATSIZE
通常は stat 呼び出しに対して戻される stat 構造体のサブセットを指定します。
FULLSTATSIZE (FULLSTATSIZE)
通常 fullstat 呼び出しに対して戻される stat (fullstat) 構造体のサブセットを指定します。
静的サイズ
完全な stat 構造体を指定します。 0 は、 STATXSIZE が指定された場合と同様に、完全な stat 構造を指定します。
 
Command
処理オプションを指定します。 statx サブルーチンの場合、 Command パラメーターは、提供されたパス名を解釈する方法を決定します。具体的には、シンボリック・リンク、隠しディレクトリー、またはマウント・ポイントに関する情報を検索するかどうかを決定します。 フラグは、論理和をとることによって結合することができます。 指定可能な値は以下のとおりです。
STX_LINK (STX_LINK)
Command パラメーターが STX_LINK フラグを指定し、 Path パラメーターがシンボリック・リンクを参照するパス名である場合、 statx サブルーチンはシンボリック・リンクに関する情報を戻します。 STX_LINK フラグが指定されていない場合、 statx サブルーチンは、リンクが参照するファイルに関する情報を戻します。

Command パラメーターが STX_LINK フラグを指定し、 Path 値がシンボリック・リンクを参照する場合、st_mode戻された stat 構造体のフィールドは、ファイルがシンボリック・リンクであることを示しています。

STX_HIDDEN
Command パラメーターが STX_HIDDEN フラグを指定し、 Path 値が隠しディレクトリーを参照するパス名である場合、 statx サブルーチンは隠しディレクトリーに関する情報を返します。 STX_HIDDEN フラグが指定されていない場合、 statx サブルーチンは隠しディレクトリーのサブディレクトリーに関する情報を返します。

Command パラメーターが STX_HIDDEN フラグを指定し、 Path が隠しディレクトリーを参照している場合、st_mode戻された stat 構造体のフィールドは、これが隠しディレクトリーであることを示しています。

STX_MOUNT (STX_MOUNT)
Command パラメーターが STX_MOUNT フラグを指定し、 Path 値が、マウントされているファイルまたはディレクトリーの名前である場合、 statx サブルーチンは、マウント・オーバー・ファイルに関する情報を戻します。 STX_MOUNT フラグが指定されない場合、 statx サブルーチンは、マウントされたファイルまたはディレクトリー (仮想ファイル・システムのルート・ディレクトリー) に関する情報を戻します。

Command パラメーターが STX_MOUNT フラグを指定する場合、 FS_MOUNT ビットは、st_flag返される stat 構造体のフィールドは、このファイルがマウントされている場合にのみ設定されます。

Command パラメーターに STX_MOUNT フラグが指定されていない場合、 FS_MOUNT ビットは、 st_flag返される stat 構造体のフィールドは、このファイルが仮想ファイル・システムのルート・ディレクトリーである場合にのみ設定されます。

STX_NORMAL (STX_NORMAL)
Command パラメーターに STX_NORMAL フラグが指定されている場合、 Path 値に対して特別な処理は実行されません。 このオプションは、 STX_LINKSTX_HIDDEN、および STX_MOUNT フラグが望ましくない場合に使用してください。

fstatx サブルーチンの場合、現在、特別な処理オプションはありません。 Command パラメーターに有効な値は、 STX_NORMAL フラグのみです。

fullstat および ffullstat サブルーチンの場合、 Command パラメーターに FL_STAT フラグを指定できます。 これは、 STX_NORMAL フラグまたは FL_NOFOLLOW フラグ ( STX_LINK フラグと同等) と同等です。

STX_64
Command パラメーターが STX_64 フラグを指定し、ファイル・サイズが OFF_MAXより大きい場合、 statx は成功し、ファイル・サイズを戻します。 それ以外の場合、 statx は失敗し、 errnoEOVERFLOWに設定されます。
STX_64X
コマンド パラメーターが STX_64X フラグを指定し、 統計 構造体のサイズが STX_64Xのサイズと等しくない場合、 統計 は失敗し、 エラー番号エインヴァルに設定します。
ST _ 翻訳不要 _STX_EFSRAW
Command パラメーターが STX_EFSRAW フラグを指定し、 Path パラメーターが暗号化ファイルを参照するパス名である場合、 statx サブルーチンはファイルの完全な暗号化サイズを返します。

戻り値

正常終了時には値 0 が返されます。 そうでない場合は-1が返され、エラーを示す errnoグローバル変数が設定される。

エラー・コード

statfstatat lstatstatxstatxat、 および fullstat サブルーチンが失敗するのは、以下の 1 つ以上が該当する場合です。

項目 説明
EACCES パス接頭部の 1 つのコンポーネントに対する検索許可が拒否されました。
ENAMETOOLONG POSIX_NO_TRUNC フラグが有効な間、パス接頭部の長さが PATH_MAX フラグ値を超えているか、パス名が NAME_MAX フラグ値より長くなっています。
ENOTDIR パス接頭部のコンポーネントがディレクトリーではありません。
EFAULT Path または Buffer パラメーターのいずれかが、プロセスの割り振り済みアドレス・スペースの外部の場所を指しています。
ENOENT Path パラメーターで指定されたファイルが存在しません。
EOVERFLOW ファイル・サイズが、 Buffer パラメーターによって指し示される stat 構造体で表現できる最大値を超えています。

statfstatatlstatstatxstatxat、 および fullstat サブルーチンは、他の理由で失敗する可能性があります。

fstatfstatx、およびffullstat サブルーチンは、以下の 1 つ以上が該当する場合に失敗します。

項目 説明
EBADF FileDescriptor パラメーターは、有効なファイル記述子ではありません。
EFAULT Buffer パラメーターは、プロセスの割り振り済みアドレス・スペースの外部の場所を指します。
EIO ファイル・システムからの読み取り中に入出力 (I/O) エラーが発生しました。

以下の 1 つ以上が該当する場合、 statxstatxat、および fstatx サブルーチンは失敗します。

項目 説明
EINVAL 「長さ」 の値が、0 から STATSIZE マクロによって返される値までの範囲内ではありません。
EINVAL Command パラメーターに許容値が含まれていません。

statxatfstatatstat64at、 および stat64xat サブルーチンは、以下の 1 つ以上が該当する場合に失敗します。

項目 説明
EBADF Path パラメーターで絶対パスが指定されず、DirFileDescriptor パラメーターが AT_FDCWD でも有効なファイル・ディスクリプターでもない。
ENOTDIR Pathパラメータは絶対パスを指定せず、DirFileDescriptorパラメータはAT_FDCWDでもディレクトリに関連付けられたファイル記述子でもない。

fstatatstat64at、および stat64xat サブルーチンは、以下の条件が満たされると失敗します。

項目 説明
EINVAL Flag パラメーターが無効です。

ファイル

項目 説明
/usr/include/sys/fullstat.h fullstat 構造体が入っています。
/usr/include/sys/mode.h stat.h ファイルの代わりに値を定義します。