可能な限りすべての警告を提供するよう、常にコンパイラに依頼する必要があります。これは、オプションをコンパイラにgcc渡すことを意味します。-Wall -Wextragcc
これを行った場合、コンパイラは (警告またはエラー メッセージを発行することによって) 多くの間違いを検出したことになります。
#include <stdio.h>ディレクティブがありません
- 識別子のケースは重要では
FILE* logfile;ないと宣言する必要があります。File *logfile;
- フォーマット指定子が望むように ではないため、への呼び出し
printfは間違っています。これは (抽象データ構造への) ポインターであるため、必要な場合は を使用します。-edハンドルについては、そのアドレスからはあまりわからないことに注意してください(重要なのは、結果がis であるかどうかだけです)。logfileint%dprintf%pfopenFILE*fopenNULL
一般的なアドバイスは、コンパイラから警告が出なくなるまでソース コードを改善することです。
デバッガー ( などgdb) の使用方法も学習する必要があります。次に、デバッグ情報を使用してコンパイルします。gcc -Wall -Wextra -g yoursource.c -o yourprog
Linux システム (gccおよびgdbが非常に一般的なツール) を使用している場合はvalgrind、straceおよび ltraceユーティリティが役立つことがよくあります。