Я начал изучать C в качестве хобби и уже довольно долгое время вслепую использовал FILE в качестве объявления для указателей файлов, и мне было интересно. Это ключевое слово или специальный тип данных для C для обработки файлов? Содержит ли он поток к файлу внутри и другие данные? Почему он определяется как указатель?
Пример, чтобы показать, что я имею в виду, чтобы сделать его немного более понятным:
FILE* fp; //<-- this
fp = fopen("datum.txt", "r");
while(!feof(fp)) {
// etc.
}