無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ウズ

無題

#1

投稿記事 by ウズ » 16年前

またお世話になります。

C言語で、カレントディレクトリをファイルに出力したいのですが、
うまくいきません。

fprintf(fp, " DIRECTORY: %s\n", system("pwd > /dev/null 2>&1"));

と書いたのですが、(fpはファイルポインタです)

コンパイルでwarningがでてしまいます。
warning: format argument is not a pointer (arg 3)

どうすればちゃんと出力できますか??

lbfuvab

Re:無題

#2

投稿記事 by lbfuvab » 16年前

う~ん、GetCurrentDirectory関数を使った方が楽な気がしますが……

Blue

Re:無題

#3

投稿記事 by Blue » 16年前

system関数の戻り値はintです。
printfの%sはint型の書式文字ではありません。

御津凪

Re:無題

#4

投稿記事 by 御津凪 » 16年前

getcwd が使えればそれで取得できますよ。
確かC標準ライブラリに入っています。

Blue

Re:無題

#5

投稿記事 by Blue » 16年前

>getcwd が使えればそれで取得できますよ。
ですね。
http://www.linux.or.jp/JM/html/LDP_man- ... cwd.3.html

Mist

Re:無題

#6

投稿記事 by Mist » 16年前

ネットで調べても分からなかったのですが、pwdの戻り値はディレクトリ文字列のアドレスなのでしょうか??
もし、そうであれば

(char*)system("pwd > /dev/null 2>&1")

で出来るとは思いますが・・・


> lbfuvabさん

pwdはUNIXコマンドなので質問者さんの開発環境はUNIX系ではないでしょうか。

ウズ

Re:無題

#7

投稿記事 by ウズ » 16年前

>lbfuvab様
>Blue様
>御津凪様
>Mist様
皆様、返信ありがとうございます。
getcwdが使えそうとのことですので、それでやってみます。
おっしゃるとおり開発環境はSolarisなのでUNIX系です。。

たかぎ

Re:無題

#8

投稿記事 by たかぎ » 16年前

getcwdを使えば解決しますが、外部コマンドのpwdを使うのであれば、systemではなくpopenを使った方がよいかと思います。

ウズ

Re:無題

#9

投稿記事 by ウズ » 16年前

皆様ありがとうございました。
おかげさまで解決しました!

閉鎖

“C言語何でも質問掲示板” へ戻る