標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#define _XOPEN_SOURCE_EXTENDED 1
#include <utmpx.h>
struct utmpx *getutxid(const struct utmpx *id);
getutxid() 関数は、utmpx データベース内の現在地点から順方向に 検索します。データベースがまだオープンされていない場合は、それをオープンします。id で指定される utmpx 構造体の ut_type が、BOOT_TIME、__RUN_LVL、OLD_TIME、または NEW_TIME である場合、ut_type 値と一致したエントリーが検出されると停止します。ut_type 値が、INIT_PROCESS、LOGIN_PROCESS、USER_PROCESS、または DEAD_PROCESS である場合、タイプがこれらの 4 つのうちのいずれかであり、ut_id メンバーが id で指定される utmpx 構造体の ut_id メンバーと 一致するエントリーが検出されると停止します。UT_type 値が EMPTY の場合、getutxid() は失敗します (NULL が戻されます)。utmpx データベースは、そのデータベースの最後に位置変更されることはありません。一致が 1 つもないままデータベースの最後に達すると、getutxid() は失敗します。
pututxline() 関数は、書き込み可能状態にあるレコードのバイト範囲で utmpx データベースの中に排他ロックを入手し、その呼び出し元に戻る前にそのロックをリリースします。 関数 getutxent()、getutxid()、および getutxline() は、読み取りを継続する可能性があり、pututxline() に影響を受けません。
getutxid() 関数は、スレッド固有のデータを戻すので、マルチスレッド・アプリケーションから使用しても安全です。同じプロセスの複数のスレッドがデータベースをオープンすると、各スレッドは、異なるファイル記述子を使用してデータベースをオープンします。スレッドのデータベース・ファイル記述子は、呼び出しスレッドが終了したか、あるいは呼び出しスレッドによって endutxent() 関数が呼び出されたときにクローズされます。
データベース・ファイルのデフォルト名は、/etc/utmpx です。異なる データベース・ファイル名を処理するには __utmpxname() 関数を使用します。
正常に実行された場合、getutxid() は、ユーザー・アカウント・データベース内の要求エントリーのコピーを持つ、utmpx 構造体へのポインターを戻します。
正常に実行されなかった場合、getutxid() は NULL ポインターを戻します。
この関数に定義されたエラーはありません。