fix: root creation of '.' and '..'

This commit is contained in:
Guamss 2026-05-08 17:26:33 +02:00
parent 3cf62ae505
commit 17b9a67217
2 changed files with 14 additions and 15 deletions

View File

@ -569,16 +569,21 @@ disk create_disk() {
d.owned_blocs[i] = 0;
}
// création de la racine '/'
d.inodes[0].filetype = TYPE_DIRECTORY;
d.inodes[0].perms = 0b111111111; // tlm fait ce qu'il veut
d.inodes[0].blocs[0] = 0; // utilise le bloc 0
d.owned_blocs[0] = 1; // le bloc 1 est maintenant occupé
int root_inode = 0;
//strncpy(&d.blocs[0].datas[0], ".", MAX_INODE_NAME);
//int point_inode = 1;
//d.owned_blocs[point_inode] = 1;
//memcpy(&d.blocs[0].datas[MAX_INODE_NAME], &point_inode, sizeof(int));
// création de la racine '/'
d.inodes[root_inode].filetype = TYPE_DIRECTORY;
d.inodes[root_inode].perms = 0b111111111; // tlm fait ce qu'il veut
d.inodes[root_inode].blocs[0] = 0; // utilise le bloc 0
d.owned_blocs[root_inode] = 1; // le bloc 1 est maintenant occupé
// création de '.' dans '/'
strncpy(&d.blocs[0].datas[0], ".", MAX_INODE_NAME);
memcpy(&d.blocs[0].datas[MAX_INODE_NAME], &root_inode, sizeof(int));
// création de '..' dans '/'
strncpy(&d.blocs[0].datas[MAX_INODE_NAME + sizeof(int)], "..", MAX_INODE_NAME);
memcpy(&d.blocs[0].datas[2*(MAX_INODE_NAME) + sizeof(int)], &root_inode, sizeof(int));
int test_file_inode = create_file(&d, &d.inodes[0], "test");
write_in_file(&d, test_file_inode, "coucou petit\ntest!!");

View File

@ -31,12 +31,6 @@ int do_cd(disk *d, char *path) {
return 1;
}
#include "env.h"
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int do_echo(char **args) {
if (args[0] == NULL) {
printf("\n");