Uno de ellos tiene que ver con obtener el tamaño de un archivo. Utilizo el siguiente codigo para obtener el tamaño del archivo:
Código
#define __USE_FILE_OFFSET64 #define __USE_LARGEFILE64 #define __USE_LARGEFILE // Mucho codigo despues... unsigned int getFileSize(string fileName) { unsigned int tempReturn = 0; FILE *temp = fopen64(fileName.c_str(), "rb"); if (temp != NULL) { feeko64(temp, 0, SEEK_END); tempReturn = ftello64(temp); fclose(temp); } return tempReturn; }
El caso es que pese a usar "fopen64()" e incluir los "#define" para usar archivos largos, no supera los 2GB. Estoy haciendo pruebas con un archivo de 2,7GB y me dice que el tamaño es de 2GB.
¿Alguna idea de como puedo solucionarlo?
Lo incluyo todo correctamente y el compilador no me da ningun error. ¿Tendría que añadir algun parametro mas a la orden de compilado?
Uso ubuntu y codeblocks. Supongo que esto es portable a Windows y para mi proximo proyecto necesito dejarlo zanjado porque lo desarrollaré para ambos sistemas operativos.