EN JA
KLDSTAT(2)
KLDSTAT(2) FreeBSD System Calls Manual KLDSTAT(2)

名称

kldstatkld ファイルの状態を取得する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/param.h>
#include < sys/linker.h>

int
kldstat( int fileid, struct kld_file_stat *stat);

解説

kldstat() システムコールは、 fileid によって参照されるファイルのための情報を stat に書み込みます。

struct kld_file_stat { 
 int         version;    /* sizeof(struct kld_file_stat) に設定 */ 
 char        name[MAXPATHLEN]; 
 int         refs; 
 int         id; 
 caddr_t     address; 
 size_t      size; 
 char        pathname[MAXPATHLEN]; 
};
version
このフィールドは、 kldstat() 自体ではなく kldstat() を呼び出すコードによって前述のとおりに構造体のサイズに設定されます。
name
fileid によって参照されるファイルの名前。
refs
fileid によって参照されるモジュールの数。
id
fileid で指定されるファイルの ID。
address
kld ファイルのロードアドレス。
size
ファイルによって割り付けられたバイト単位のメモリの容量。
pathname
パスを含む fileid によって参照されるファイルのフルネーム。

戻り値

The kldstat() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

fileid によって参照されるファイルのための情報は、次の場合を除いて、 stat によって指される構造体に書き込まれます:
[ ENOENT]
ファイルが見つかりませんでした (おそらくロードされなかった)。
[ EINVAL]
stat の version フィールドで指定されたバージョンが、適切なバージョンでありません。利用者が version フィールドに適切に書き込まれた状況で、このエラーが生じるなら、 world (すべてのコマンド)、カーネル、またはアプリケーションを再構築する必要があります。
[ EFAULT]
copyout(9) 関数で stat に、1 つ、いくつか、またはすべてのフィールドをコピーすることに問題がありました。

歴史

kld インタフェースは、 FreeBSD 3.0 ではじめて登場しました。

バグ

モジュールがロードされたときから、ファイルシステムのマウントが、変更されているか、または、この関数が chroot された環境内で呼び出されるなら、パス名は、正確でないかもしれません。
March 28, 2012 FreeBSD