int main(int argc, char const *argv[]) { unsigned int i; unsigned int inumber; if (argc < 2) { printf("Usage : if_delete [inumber] -> supprimer l'inode de numero [inumber] et renvoi OK ou KO\n"); return EXIT_FAILURE; } /* init hardware */ if(init_hardware("hardware.ini") == 0) { fprintf(stderr, "Error in hardware initialization\n"); exit(EXIT_FAILURE); } /* Interreupt handlers */ for(i=0; i<16; i++) { IRQVECTOR[i] = empty_it; } /* Allows all IT */ _mask(1); printf("Loading Master Boot Record...\n"); load_mbr(); load_super(0); inumber = atoi(argv[1]); delete_ifile(inumber, 0); return EXIT_SUCCESS; }
int del_entry(int idir, const char* name) { int ret; struct entry_s entry; file_desc_t fd; open_ifile(&fd, idir); ret = find_entry(&fd, name); if(ret < 0) { return -1; } seek2_ifile(&fd, ret*sizeof(struct entry_s)); if(read_ifile(&fd, &entry, sizeof(struct entry_s)) <= 0) { return -1; } delete_ifile(entry.inumber); entry.inumber = 0; seek2_ifile(&fd, ret*sizeof(struct entry_s)); if(write_ifile(&fd, &entry, sizeof(struct entry_s)) <= 0) { return -1; } close_ifile(&fd); return 0; }