我读过一些帖子,展示了如何使用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而不是使用fseek和ftell。请问有人能发表评论吗?
fseek
的优点是它可以在块设备文件上工作。 - bdonlanfstat
,因为它会排除在设备节点上操作的可能性,而你的应用程序在其他情况下可能正常工作。 - R.. GitHub STOP HELPING ICE