Trusted Solaris 開発ガイド

ユーザーデータベースの列挙

次の例は、tsoluser(4) データベースの先頭から開始し、エントリを 1 つずつ列挙する方法を示します。最後に、この列挙に割り当てられている資源と uentry (ユーザーエントリ) に割り当てられている記憶領域が解放されます。tsolprof(4) データベース内のエントリを列挙するコードはほとんどこのコードと変わらないため、示されていません。

#include <tsol/user.h>
 #include <tsol/prof.h>

 main()
 {
 	userent_t					*uentry;

/* ユーザーのデータベースの先頭で列挙処理を設定する */
 	setuserent(0, TSOL_DB_SRC_SWITCH);

 	while((uentry = getuserent(TSOL_DB_SRC_SWITCH)) != NULL) {
 	/* ユーザーエントリをひとつずつ処理する */
 	}

/* 列挙処理を終了し、資源を解放する */
 	enduserent(TSOL_DB_SRC_SWITCH);

/* uentry に割り当てられた記憶領域を解放する */
 	free_userent(uentry);
 }