Difference de taille entre du et ls :
exemple : Ce programme reproduit le fonctionnement de ls : on se positionne au début du fichier et on se déplace jusqu'a la fin et on compte le deplacement
#include
#include
#include
long fileSize(char *FileName)
{
FILE *fp;
long fileLen;
fp = fopen(FileName,"r");
fseek(fp,0L, SEEK_END);
fileLen = ftell(fp);
fclose(fp);
return fileLen;
}
main(argc,argv)
int argc;
char **argv;
{
printf(" Taille de %s : %d bytes \n",argv[1],fileSize(argv[1]));
}
ew43punix1:root # dd if=/dev/zero of=./sparsefile seek=945616 bs=1024 count=10
10+0 records in.
10+0 records out.
ew43punix1:root # ll
/u/eym674h/dev/ls
total 395
drwxr-sr-x 2 root 200 512 Jan 10 11:53 ./
drwxrwsrwx 26 root 200 1024 Jan 10 11:37 ../
-rwxr-xr-x 1 root 200 198749 Jan 10 11:51 sizefile*
-rw-r--r-- 1 root 200 363 Jan 10 11:51 sizefile.c
-rw-r--r-- 1 root 200 968321024 Jan 10 12:00 sparsefile
ew43punix1:root # du -sk *
184 sizefile
1 sizefile.c
3 sparsefile <==== !!!
ew43punix1:root # ./sizefile sparsefile
Taille de sparsefile : 968321024 bytes <==== !!!
Aucun commentaire:
Enregistrer un commentaire