FILE* って DIR* みたいな感じだから大丈夫だよね…と思っていた時代もありましたね系
しかし GCC はなんか *_unlocked という名前の関数を使っていて、それらの定義は中身を直接操作しちゃっている…
#define __sfeof(p) (((p)->_flags & __SEOF) != 0) #define feof_unlocked(p) __sfeof(p)
無論 FILE の定義は Linux と Mac で全然違う