FILE *fp = fopen(filepath, "r"); if(fp == NULL){ // エラーハンドリング }else{ // ファイルを開いてなんか処理する fclose(fp); } fopenは失敗したときにNULLを返しますが、 これだけですと何故失敗したのかを判断できません。 この問題は、失敗時に-1やNULLを返すシステムコールや関数では常に起きうる問題です。 このような問題が起きた場合には、errnoを利用することでエラーの種類を特定できる場合があります。 エラーを判断するerrno errnoは内でグローバルに定義された整数値です。 errno.h内にはエラーに対応した定数が定義されており、 エラーが起きた場合にerrnoに値を設定するシステムコールや関数があります。 何かしらの処理に失敗した場合にはこの値を確認することで、 エラーの種類を特定できる場合があ