#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE* fw=fopen64("","r");
return 0;
}
Большие файлы в FreeBSD. >2Гб
Код:
Из того что я нашел выходит что FreeBSD по умолчанию работает с 64 битными файловыми структурами, но у меня не получается сделать size_t 64 битным:
Код:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
size_t filesize;
printf("%d",sizeof(filesize));
return 0;
}
#include <stdlib.h>
int main(void) {
size_t filesize;
printf("%d",sizeof(filesize));
return 0;
}
Код:
g++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE main.cpp
Говорит 4:(
Потенциально все это под винду придется переделывать, так что и тут вопрос актуален.
Так у меня и под Linux говорит 4. Разве в этом проблема? size_t имеет отношение к памяти/разрядности, не к файлам.
Цитата: Phodopus
Так у меня и под Linux говорит 4. Разве в этом проблема? size_t имеет отношение к памяти/разрядности, не к файлам.
Спасибо. Моя лажа. Перепутал с off_t:
Код:
#include <stdio.h>
#include <sys/types.h>
int main(void) {
off_t filesize;
printf("%d",sizeof(filesize));
return 0;
}
#include <sys/types.h>
int main(void) {
off_t filesize;
printf("%d",sizeof(filesize));
return 0;
}
Теперь 8 !