Почему fgets принимает int вместо size_t?
Функции, такие какstrcpy()
, malloc()
, strlen()
и различные другие принимают свои аргументы или возвращаемые значения какsize_t
вместоint
илиunsigned int
по понятным причинам.
Некоторые файловые функции, такие какfread()
а такжеfwrite()
использованиеsize_t
также. Соответственно, можно ожидать, чтоchar* fgets (char *str, int num, FILE *stream)
следует использоватьsize_t
и неint
в качестве аргумента для его размера буфера.
Тем не мение,fgets()
используетint
, Есть ли объективное объяснение, почему?