アプリ版:「スタンプのみでお礼する」機能のリリースについて

c言語中で自分のホームディレクトリを知る関すうってありますか?もしくはやり方

A 回答 (3件)

Linux/UNIX じゃったら、



#include <stdio.h>
#include <stdlib.h>
main(){

 char home[128];    /* ホーム */
 char pwd[128];    /* カレント */

 strcpy(home, getenv("HOME"));
 strcpy(pwd, getenv("PWD"));
}
(環境変数は、env で要確認!!、 <stdlib.h> ないと、エラーになることありまする。)
    • good
    • 0
この回答へのお礼

初心者の私には一番分かりやすかったです。ありが当座いました。

お礼日時:2006/03/12 06:29

以下、UNIX系OSとして答えます。

(他のOSではホームディレクトリという概念そのものがない場合がありますが、もしかすると何らかの方法で同じ関数を用意しているかも知れませんので調べてみて下さい)。

何らかの事情で No.1 の方が答えられている方法が使えない場合も想定して作りたい場合は以下の方法で分かると思います。

1. getuid() で現在のプロセスの実ユーザIDを取得する。

2. 取得したユーザIDを使って getpwuid() でパスワードフィールドを取得する。

3. 取得したパスワードフィールドの構造体の中の pw_dir のフィールドがホームディレクトリ。

p.s.
環境変数 HOME を使う場合は getenv() 関数を使った方が探す手間が省けます。
    • good
    • 0
この回答へのお礼

ありがとう御座います、勉強になりました。

お礼日時:2006/03/12 06:32

mainの第3引数(普通はenvpという仮引数名にする)に環境変数の一覧が入るので、HOME という環境変数の値を切り出してくればよいです。

    • good
    • 0
この回答へのお礼

ありがとうございます。ちょっとまだ使い方が分からないのですが、勉強します。

お礼日時:2006/03/12 06:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!