ユーザー空間でuser_structのデータにアクセスする方法

ユーザー空間でuser_structのデータにアクセスする方法

既存のコマンドまたはAPIを介してLinuxユーザースペースのuser_structから情報を取得する方法はありますか?

つまり、ULIMITSによって制御されているユーザーが現在開いているファイルとジョブの数を取得できます。

答え1

カーネルのソースコードを見ました(具体的にはLinux/user.c/procシステムコール定義またはエントリ管理が見つかりませんでした...

したがって、これを行うAPIがないようです。 :-(

したがって、2つの解決策があります。

  • これらの統計をダンプする各ユーザーに対して `/proc/̀エントリを実装するカーネルモジュールを開発できます。

  • /proc/<pid/アイテム(プロセス所有者が所有するディレクトリ)を解析し、ターゲットユーザーが所有する各プロセスごとにファイルなどをfd解析できます。stat

答え2

シンプル

man ulimit

ユーザー制限の一般的な説明と(マンページの下部に)「参照」セクションを提供します。そこには次のものがあります。

制限を受ける(2)

これは、「getrlimit()」(マンページセクション2)というシステムコールがあることを意味します。だからあなたがするとき

man 2 getrlimit

ユーザー制限構造を検索するために必要なすべての情報を取得できます。

関連情報