Unix の utssys() は、ファイル上のユーザーの総数を示します。これは文書化されていない API です。Solaris のマニュアル ページにも Linux のマニュアル ページにも、この API のマニュアル エントリはありません。Linux または i に使用できる同等の API はありますかLinuxでも同じです(文書化されていないためわかりません)。私もそれをグーグルで調べましたが、そのような情報は得られませんでした.助けてください.
int DU_Utssys_Unix(void* buf, int arg, int type, void* out)
{
int result;
// Perform system-call
errno = 0;
if ((result = utssys(buf, arg, type, out)) < 0)
return result;
// Look into the result:
return ((fu_data_t*)outbp)->fud_user_count;
}
上記は、Linux 用に置き換える必要があるコードです。ファイルのユーザー数を調べるために syscall() を使用できますか? はいの場合、どこに保存されますか???
Unix では、上記のコード スニペットで使用されているように、この情報を保存するための以下の構造がありますが、Linux でも同じですか、それとも異なりますか?
typedef struct f_user
{
int fu_flags; /* see below */
union
{
struct
{
pid_t u_pid;
uid_t u_uid;
}u_info;
struct
{
int k_modid;
int k_instance;
int k_minor;
}k_info;
} fu_info;
}f_user_t;
typedef struct fu_data
{
int fud_user_max;
int fud_user_count;
struct f_user fud_user[1];
}fu_data_t;