C言語

  • プロセス
    • メモリ解放
      • プロセスがメモリを解放するのはプロセスが終了する時。プロセスはプログラムを実行するが、プロセスの終了と同時にプログラムが必ずしも終了しない。
  • ライブラリ
    • 静的ライブラリ(libxxx.a): それぞれのプログラムが、ライブラリを個々に読み込む。実行ファイルにライブラリが組み込まれる。ライブラリを更新すると、実行ファイル自体をコンパイルしなおす必要がある。
    • 共有ライブラリ(libxxx.so): 複数のプログラム間でライブラリを共有する。ディスクとメモリの節約。
      • 動的ライブラリ: 実行するときに読み込まれる。ライブラリを更新した時は、動的ライブラリだけを更新すれば、OK。コンパイルしなおす必要がない。
  • インクルード
    • -I: カスタム・インクルード・ファイルの場所を指定
    • -L: プログラミング・ライブラリの場所を指定 #include <stdio.h> #include <string.h>

int main() {

   FILE* f = fopen("result.txt",  "r");
   FILE* g = fopen("summary.txt", "w");
   char line[500];
   char cp_line[500];
   char *pos;
   int index, fpos, epos, i, num;
   while (fgets(line, 256, f) != NULL) {

// コメント部分を除去 strncpy(cp_line,line,strlen(line)+1); cp_line[strlen(cp_line)-1] = '\0'; printf("%s",cp_line);

       fprintf(g, "%s", cp_line);

index = 0; if*1!=NULL){ fpos = strlen(cp_line) - strlen(pos); // /*の位置 if*2!=NULL){ // /* .... */ を削除 epos = strlen(cp_line) - strlen(pos); // */の位置 num = strlen(cp_line) - strlen(pos) - 2; for(i=0;i<num;i++) cp_line[fpos+i] = cp_line[epos+2+i]; cp_line[fpos] = '\0'; }else{ // /* ... を削除 cp_line[fpos] = '\0'; } } if*3!=NULL){ fpos = strlen(cp_line) - strlen(pos); // /*の位置 cp_line[fpos] = '\0'; } // コメント部分を削除した後でも、プリプロセッサ命令が // 残って入ればNO、残っていなければOK if( strstr(cp_line,"defined")==NULL && strstr(cp_line,"ifdef")==NULL && strstr(cp_line,"ifndef")==NULL && strstr(cp_line,"elif")==NULL ){ printf("\tNO\n"); }else{ printf("\tNO\n"); }

       //fprintf(g, "%s", line);
   }
   fclose(f);
   fclose(g);
   return 0;

}

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年08月19日 23:08
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。

*1 pos=strstr(cp_line,"/*"

*2 pos=strstr(cp_line,"*/"

*3 pos=strstr(cp_line,"//"