2016-06-17 14 views
-1

私はディレクトリの下にすべてのソースコード(例えば、*.c*.h)を解析したいC.C言語の解析ファイルの詳細

と初心者です。

ファイル名、サイズ、ソース内の行数を知りたい。

検索後、1つのファイルの詳細を解析して(ソースの行数を取得できます)。私はsystem()を使用して、サイズとファイル名、またはディレクトリ内のファイルリスト(サイズなし)を知ることもできます。

しかし、これらをすべて1つのプログラムに結合する方法についてはわかりません。そのためのガイダンスを探しています。

ありがとうございます!以下


ための私のコードである次のステップについては考えている。..

int main (void){ 

    DIR *dp; 
    FILE *fp; 
    struct dirent *ep; 


    dp = opendir ("./"); 
    fp = fopen ("output.txt", "w"); 
    if (dp != NULL) 
    { 
      while (ep = readdir (dp)) 

      fprintf(fp,"%s\n", ep->d_name); 

      (void) closedir (dp); 
    } 
    else 
    perror ("Couldn't open the directory"); 

    return 0; 

}

+0

これは開発サイトでOPは初心者のCプログラマであるため、 'wc dir/*'や 'wc dir/*。[hc]' –

+0

@Tomを使ってください。 )彼らはこれを行うための独自のプログラムを書こうとしています:-) – paxdiablo

+0

解析したいのですか、コンパイルしますか? –

答えて

3

は、ここであなたがに見て必要なものです:

  • などのファイル名を反復処理する方法opendir()readdir()などとなります(もちろん、実際の反復についてはwhile)。
  • fstat()などのファイルの詳細を取得する方法。
  • ifで行末の文字を認識する方法を含めて、fopen(),fgetchar()fclose()など、ファイルを開いて読み取る方法。あなたが仕事を開始するために必要なツールである必要があり

は、私はあなたのプログラムを構築しようとし、それらに見てお勧めしたいです。 具体的プログラムに関する問題は、他の質問で私たちの注意を喚起することができます。例としては、(具体的opendir箇条書きのもの)を上に与えられた

注プラットフォーム固有であってもよいです。それらが利用できない場合、標準Cはその機能を提供しないので、あなたのプラットフォームに相当するものを見つける必要があります。

+0

グレートのフォルダとサイズと行のすべての* .c * .hのをリストファイルを作りたいです。しかし、これはLinuxまたはPOSIXです。標準C99はディレクトリについて知りません!! –

+0

@Basile、したがって「〜のような」というフレーズ。明らかに、非POSIX環境で実行している場合は、正しい方法を見つける必要があります。これは一例と一緒に、あなたが見つけるために必要なものを与えている答えが無効になることはありません。私は明確にします。 – paxdiablo

+0

には特定のコードがありますか? – opsai