Bonjour,
je cherche à manipuler des fichiers de plus de 4 Go dans un programme C sous Cygwin. J'essaye pour l'instant de récupérer la taille d'un fichier.
voici le code que j'utilise pour l'instant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
DIR* ptdir;
struct dirent* entree;
struct stat64 info;
char file_name[256];
char frame[MAX_FRAME_SIZE];
u32 frame_idx;
[...]
while ((entree = readdir(ptdir)) != NULL)
{
stat64(file_name, &info);
frame[frame_idx++] = (char) ((info.st_size && 0xFF00000000000000ULL) >> 56);
frame[frame_idx++] = (char) ((info.st_size && 0x00FF000000000000ULL) >> 48);
frame[frame_idx++] = (char) ((info.st_size && 0x0000FF0000000000ULL) >> 40);
frame[frame_idx++] = (char) ((info.st_size && 0x000000FF00000000ULL) >> 32);
frame[frame_idx++] = (char) ((info.st_size && 0x00000000FF000000ULL) >> 24);
frame[frame_idx++] = (char) ((info.st_size && 0x0000000000FF0000ULL) >> 16);
frame[frame_idx++] = (char) ((info.st_size && 0x000000000000FF00ULL) >> 8);
frame[frame_idx++] = (char) ((info.st_size && 0x00000000000000FFULL));
} |
Comme mes fichiers sont très gros, je suis censé utiliser stat64() au lieu de stat() (right ?)
or, à la compilation, ca ne passe pas :
Partager