標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#define _XOPEN_SOURCE_EXTENDED 1
#include <utmpx.h>
void endutxent(void);
endutxent() 関数は、現行スレッド用の utmpx データベースをクローズ します。このデータベースは、getutxent()、getutxid()、getutxline()、または pututxline() でオープンできます。
endutxent() 関数は、スレッド固有のデータを処理するので、マルチスレッド化したアプリケーションで使用しても安全です。同じプロセスの複数のスレッドがデータベースをオープンすると、各スレッドは、異なるファイル記述子を使用してデータベースをオープンします。スレッドのデータベース・ファイル記述子は、呼び出しスレッドが終了したか、あるいは呼び出しスレッドによって endutxent() 関数が呼び出されたときにクローズされます。
endutxent() が呼び出された後で、getutxline()、getutxid()、getutxent()、または pututxline() が戻した データを、プログラムが参照してはなりません (ストレージは、既に解放 されています)。
getuxline()、getutxent()、getutxid()、または pututxline() のあと で、utmpx データベースはオープンしています。当該プロセスが endutxent() か __utmpxname() を発行 して utmpx データベースをクローズするまで、または当該プロセスが終了する までは、ほかのプロセスが pututxline() をこの utmpx データベースに対して 実行することはできません。exit() に失敗したり、endutxent() または __utmpxname() の発行に失敗 したときに、メインの /etc/utmpx データベースがユーザーのプロセスで オープンしていると、z/OS®UNIX ユーザーのログインまたはログアウトの すべてをハングさせることができます。endutxent() は、デフォルトに戻してオープンするために、次の utmpx ファイルの名前をリセットします。非標準 utmpx ファイル名を使用して utmpx 命令を追加実行する場合 は、endutxent() で utmpx データベースをクローズして から __utmpxname() を再発行する必要があります。
endutxent() は、値を戻しません。