Я читал сообщения, в которых показано, как использовать fseek и ftell для определения размера файла.
FILE *fp;
long file_size;
char *buffer;
fp = fopen("foo.bin", "r");
if (NULL == fp) {
/* Handle Error */
}
if (fseek(fp, 0 , SEEK_END) != 0) {
/* Handle Error */
}
file_size = ftell(fp);
buffer = (char*)malloc(file_size);
if (NULL == buffer){
/* handle error */
}
Я собирался использовать эту технику, но затем наткнулся на эту ссылку , которая описывает потенциальную уязвимость.
Ссылка рекомендует вместо этого использовать fstat. Кто-нибудь может это прокомментировать?