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