• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語を用いた文書検索に関する質問です。)

c言語を用いた文書検索に関する質問です

このQ&Aのポイント
  • c言語に詳しくないため、文書検索プログラムの実装について詳しい方に質問です。
  • ディレクトリ内の複数の文書から特定の単語を含む文書を検索し、テキストファイル名を表示するプログラムを作成中です。
  • コンパイルは通るが、コマンドラインの入力後にsegmentation faultが発生します。原因が分からず困っています。

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

  • ベストアンサー
  • tyatsumi
  • ベストアンサー率58% (30/51)
回答No.1

入力ファイル内に空行があると、 次の部分でSegmentation faultになるようです。 ---- /*strtokを用いて単語毎に区切っていく(1単語目)*/ s = strtok(buffer,delimiter); if(strcmp(s,kueri) == 0){ ---- bufferが空行だとstrtokが返すsがNULLになるようなんですが、 そのせいでstrcmpがSegfaultになる、ということのようです。 strtokの2回目以降の呼び出しのように、sのNULLチェックを加えれがよいと思います。 ちなみに解析にはgdbというデバッガを使いました。 Segmentation faultが何処で起きたかを調べるにはgdbが便利です。 もしgccを使っているようなら、gdbの使いかたも調べてみてください。

mikoto1129
質問者

お礼

ありがとうございます! 無事作成することができました。 gccを使っていたにで、gdbについても調べてみます。 本当にありがとうございました。

関連するQ&A