ホームページ  >  記事  >  バックエンド開発  >  環境変数に依存せずに Linux C プログラムでユーザーのホーム ディレクトリを取得する方法

環境変数に依存せずに Linux C プログラムでユーザーのホーム ディレクトリを取得する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 00:11:02243ブラウズ

How to Obtain User Home Directories in Linux C   Programs Without Relying on Environment Variables?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。