Linux でのユーザー ホーム ディレクトリの取得
Linux 上で実行される C プログラムを開発する場合、ユーザーのホーム ディレクトリを取得する必要がある場合があります。 HOME 環境変数に依存せずにこれを実現するには、より信頼性の高いアプローチを使用できます。
Linux でホーム ディレクトリを取得するには、次の手順を実行できます。
1.ユーザー ID の決定:
getuid() 関数を使用して、現在のユーザーのユーザー ID を取得します。
2.パスワードエントリの取得:
getpwuid()関数を使用すると、取得したユーザーIDに関連付けられたパスワードエントリを取得できます。このエントリはホーム ディレクトリをカプセル化します。
コード例:
<code class="c++">#include <unistd.h> #include <sys/types.h> #include <pwd.h> struct passwd *pw = getpwuid(getuid()); const char *homedir = pw->pw_dir;</code>
アプリケーションがスレッドを使用する場合、代わりに getpwuid_r 関数を使用する必要があることに注意してください。スレッド セーフティ。
ルート ホーム ディレクトリ アクセス:
ルート ホーム ディレクトリは通常、/root にあります。プログラムが root ユーザーで動作する場合は、このディレクトリ内にファイルまたはフォルダーを作成しても問題ありません。ただし、注意を払い、そのようなアクションは重要なタスクに限定することをお勧めします。
以上が環境変数に依存せずに Linux C プログラムでユーザーのホーム ディレクトリを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。