Прежде всего, я говорю о UNIX-подобных системах.
Я смотрю на определение структуры "ФАЙЛ" в книге Mac OS, Linux, Minix и K & R C, все они разные.
В книге K & R C это совершенно ясно
typedef struct _iobuf{
int cnt;
char *ptr;
char *base;
int flag;
int fd;
} FILE;
в Mac OS, в структуре есть больше вещей.
в Linux (3.0), это
typedef _IO_FILE FILE;
Заголовок гласит: «Определите ISO C stdio поверх C ++ iostreams». Эм ...? (C на Linux реализованы на C ++? Разве это не должно быть наоборот?)
Похоже, определение _IO_FILE в libio.h
на Minix, определение очень похоже на K & R.
Мое непрочитанное было stdio.h должно быть частью C. Первый компилятор C реализован на ассемблере. И C должен быть независимым от типа ОС.
машинный код на HW -> asm -> C -> более сложный C -> UNIX
И теперь, есть разные stdio.h на разных ОС (все виды UNIX), и все компиляторы gcc.
Как это понять?
Большое спасибо,
Альфред