[英]C working with big files, fseek and fread
我正在編寫一個程序,我可能需要訪問大於~2GB 的文件。 只使用 fseek 和 fread 而不使用 ftell 是否適用於更大的文件?
int main() {
unsigned long long int len;
unsigned char *buffer; /* i know its not initialized */
unsigned char *sbuffer = buffer;
FILE *fp = fopen("test123", "rb");
fread(fp, 8, 1, (void*) &len);
while (len >= LONG_MAX) {
fread(fp, 1, LONG_MAX, (void*) sbuffer);
sbuffer += LONG_MAX;
len -= LONG_MAX;
}
if (len) {
fread(fp, 1, len, (void*) sbuffer);
}
}
您可以使用fread64
、 fseek64
等的 64 位變體,也可以在包含標頭之前使用#define _FILE_OFFSET_BITS 64
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.