Функции, такие как 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. Есть ли объективное объяснение, почему?