• ベストアンサー

簡単にファイルやディレクトリの存在を調べる方法(OSはSorarisです)

c言語でファイルやディレクトリの存在を調べる方法ってどんなのがあります? 今は、以下のやり方でやろうとしています( ****=フルパスファイル名) p = popen( "ls ****, "r" ); fscanf( p, "%s", buf ); if( strcmp( buf, ****, ) == 0 )   ~~~~~~ また、unixでそういうコマンドってありますかね? ファイルが存在したら、1を返しなければ0を返すみたいなものとか

質問者が選んだベストアンサー

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.1

stat() か fstat() を使ってください。 もしくは、ファイルがなければ例えばfopen()が失敗します。(ディレクトリをfopen()すると成功しますので注意) コマンドについては別に質問されてるようですのでそちらで回答させていただきました。

taurus4
質問者

お礼

stat()できました! コマンドにについても回答していただきありがとうございました。

taurus4
質問者

補足

コンソール上で、 >test -f aaa とやってみたんですが、何も返ってきませんでしたが どういうことなんでしょうか?

関連するQ&A

  • ディレクトリとファイル

    UNIXではディレクトリもファイルの一種であるかのように扱われていますが、その利点は何でしょうか? lsコマンドで一括表示されることしか思いつきません。どなたかご教授お願いします。

  • UNIXで、ディレクトリを比較して、ファイル・ディレクトリの存在を比較したい

    やりたいこと自体は単純なことなのですが・・ UNIXのコマンドで、 2つのディレクトリA、Bを比較して、 Aだけにあるディレクトリ・ファイルのみを取得できるようなものを教えてください。 (ファイルが同一かどうかは問題ではなくて、あくまでも存在不存在の比較です。) コマンドを組み合わせたり、オプションを使ってもかまいません。 diffコマンドってこういうとき使えないのでしょうか。

  • ディレクトリ一覧を表示

    unix環境で、ディレクトリやファイル一覧を表示するコマンドは「ls」ですが、 windows環境の「tree」コマンドのような視覚的に見やすく出力されるコマンドは ありませんか? また、lsコマンドではファイルも出力されますが、ディレクトリ構成だけの一覧を 出力する方法ってありますか?オプションを見てもちょっと無さそうなのですが・・

  • GCCにてディレクトリ・ファイル操作等のできるPGを作成したい。

    GCCコンパイラを使い、UNIX上のディレクトリ・ファイルの操作 また、各ファイルシステムの総容量・空容量等の確認を行いたいと思っ ているのですが、以下の処理を実行する関数を見つけることができませ んでした。 ----------------------------------------------------------------------------- ディレクトリの移動                  (chdir コマンド相当) ディレクトリ内のファイル・サブディレクトリ一覧の取得 (dir/ls コマンド相当) ファイル日付の取得                  (ls -l コマンド相当) ディスク空き容量等確認                 (df -k コマンド相当) ファイルの削除                    (rm  コマンド相当) ----------------------------------------------------------------------------- もし、ご存知の方がいらっいましたら、教えて頂きたく存じます。 また、GCCを使ったUNIXシステム管理プログラミングについて、解説されている 書籍・サイト等を御存知でしたら教えていただきたく思います。

  • lsでのファイル名・パスのフルパス取得

    環境:Solaris10 lsコマンドでディレクトリ、ファイル名の一覧を取得しようとしています。 条件としては 1.対象は全てのディレクトリ・ファイル(ls -R) 2.実行結果はアクセス権・所有者の情報も含む(ls -lの結果のような) 3.ディレクトリ・ファイル名ともにフルパスで表示 この上記3点を満たそうとして、 ls -dlR / と実行してみましたが、この場合Rスイッチが有効になりませんでした。 OS標準コマンドでこの3点を満たすことは出来るのでしょうか?

  • ファイル数の取得

    ディレクトリにあるファイル数を出力するUNIXのコマンドを探しています lsやls -lですとファイルの詳細までは見れますが、ファイル数は出てきません。 その他調べてみたのですが、方法が見つかりませんでした。 最悪はlsの結果をファイルに書き出してそのファイルの行数を見れば出来そうですが あまりにつたないやり方なので…。 ご存知であればよろしくお願いします。 正式にはBSDではなくBSDをベースにしたマシンですので もしかしたらBSDのコマンドが動かない or BSD以外のコマンドでも動くなどあるかもしれませんが どれかのUNIXで使えれば試してみますので 何かコマンドをご存知であれば教えていただければと思います。 よろしくお願いします。

  • サブディレクトリも含めて最新のファイルを調べる

    Linux 上のあるディレクトリ配下に存在するすべてのファイルの中で(サブディレクトリ配下も含めて) 更新日時が最新のファイルを抽出したいのですが やり方をご存知であれば教えてください。 ディレクトリが一つだけ or 対象が特定できるなら ls -lrt とかで分かりますが 再帰的にすべてのサブディレクトリを対象としたいのです。 できれば1回のコマンド(ワンライナー)で実行できるとありがたいですが、 それはさすがに大変な気がしますので、 あくまでできればということで。。

  • UNIXのディレクトリ「.」「..」について

    UNIXのディレクトリで、「.」とか「..」についてですが、これはどういう存在意義なんでしょうか? 少し調べたら、相対パス名の指定に必要ってかいてあったんですが、よくわかりません。よろしくお願いします。

  • ディレクトリの内容

    環境はCygwinです。 ls -l とコマンドを打てばCygwin上にディレクトリの内容が表示されますが ls コマンドは打ち込まず, 自分で作成したプログラムで同じような動作をさせることは可能でしょうか? 作業ディレクトリ中のテキストファイルの名前をディレクトリから読み込んでCygwin上で表示させたいのですが・・・

  • [if文]ファイル/ディレクトリの存在有無について

    [if文]ファイル/ディレクトリの存在有無について教えて下さい。 「あるディレクトリ配下にファイル、ディレクトリがない場合、 エラーを出力。」を目的に以下のシェルを作成しました。 if [! -f $DIR/* -a ! -d $DIR/*] nodataend fi しかし、あるディレクトリ配下に複数のファイルが存在すると正常に処理されません。 この場合、どのような条件で指定すればいいのでしょうか。 個人的には条件で指定している*が問題ではないかと思います。 宜しくお願いします!