Я читал сообщения, которые показывают, как использовать 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. Может кто-нибудь прокомментировать это?