Salut a tous , j'ai un petit probleme avec le code suivant car il ne m'affiche pas les résultats escomptés.
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include
#include <windows.h>
#include <winioctl.h>
#define int8 unsigned char
#define int16 unsigned short int
#define int32 unsigned int
int main(int argc,char **argv)
{
char *chemin="\\\\.\\F:\";
printf("Lecture de %s\n",chemin);
/* HANDLE file;
file = CreateFile(chemin,0,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
if(file == INVALID_HANDLE_VALUE)
{
*/
int file; if((file open(chemin,O_RDONLY)) -1)
{
printf("[!] ERROR: can't open [!]");
exit(0);
}
else
{
printf("Lecture de la FAT ...\n");
int16 bytes_per_sector;
int8 sectors_per_cluster;
int16 n_reserved_sectors;
int8 n_fats;
int32 sectors_per_fat;
int32 root_cluster;
int16 signature;
#define LIREA(file,offset,item) { lseek(file, offset, SEEK_SET); read(file,&item,sizeof(item)); }
LIREA(file,0x0B,bytes_per_sector);
LIREA(file,0x0D,sectors_per_cluster);
LIREA(file,0x0E,n_reserved_sectors);
LIREA(file,0x10,n_fats);
LIREA(file,0x24,sectors_per_fat);
LIREA(file,0x2C,root_cluster);
LIREA(file,0x1FE,signature);
int32 fat_begin_lba = n_reserved_sectors;
int32 cluster_begin_lba = n_reserved_sectors + ( n_fats * sectors_per_fat);
printf("Volume identification information\n");
printf("> bytes per sector: %u\t(512 expected)\n",bytes_per_sector);
printf("> sectors per cluster: %u\t(power of two)\n",sectors_per_cluster);
printf("> reserved sectors: %u\t(usually 0x20)\n",n_reserved_sectors);
printf("> file allocation tables: %u\t(should be 2)\n",n_fats);
printf("> root cluster: %u\t(usually 2)\n",root_cluster);
printf("> signature: %04x \t(should be aa55)\n\n",signature);
}
return 0;
}
Est ce quelqu'un peut m'aider ?
Merci d'avance !