docs: docstrings
This commit is contained in:
parent
2b1fed1907
commit
ed47b51f36
24
src/disk.c
24
src/disk.c
@ -1,8 +1,15 @@
|
||||
#include "disk.h"
|
||||
#include "struct.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/**
|
||||
* Créer un fichier "disk" de taille MAX_BYTES_PER_BLOC * MAX_BLOCS, renvoi ce
|
||||
* disque
|
||||
* @return Le disque créé
|
||||
*/
|
||||
|
||||
disk create_disk() {
|
||||
FILE *fptr;
|
||||
fptr = fopen("disk", "wb");
|
||||
@ -19,22 +26,29 @@ disk create_disk() {
|
||||
// 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.inodes[0].blocs[0] = 0; // utilise le bloc 0
|
||||
|
||||
int n = fwrite(&d, sizeof(disk), 1, fptr);
|
||||
if (n == 1) {
|
||||
dprintf(STDOUT_FILENO, "Disk of size %.2fKb created successfully.\n", (float)(MAX_BYTES_PER_BLOC*MAX_BLOCS)/1000);
|
||||
dprintf(STDOUT_FILENO, "Disk of size %.2fKb created successfully.\n",
|
||||
(float)(MAX_BYTES_PER_BLOC * MAX_BLOCS) / 1000);
|
||||
}
|
||||
|
||||
fclose(fptr);
|
||||
return d;
|
||||
}
|
||||
|
||||
disk open_disk(char* filename) {
|
||||
/**
|
||||
* Si un fichier filename existe, alors on le lit et le stocke en mémoire
|
||||
* @param char *filename Le nom du fichier à lire
|
||||
* @return Le disque lu
|
||||
*/
|
||||
disk open_disk(char *filename) {
|
||||
disk d;
|
||||
FILE *fptr = fopen(filename, "r");
|
||||
fread(&d, sizeof(d),1, fptr);
|
||||
if (fptr == NULL)
|
||||
exit(EXIT_FAILURE);
|
||||
fread(&d, sizeof(d), 1, fptr);
|
||||
fclose(fptr);
|
||||
return d;
|
||||
}
|
||||
@ -2,11 +2,15 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
// TODO : Tout ce fichier est à changer je pense
|
||||
|
||||
int is_builtin_cmd(char *executable) {
|
||||
(void)executable;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// à changer parce que je veux pas chercher dans le PATH, je veux juste executer
|
||||
// les futures primitives qui seront implémentées
|
||||
int execute_cmd(char **args) {
|
||||
if (!is_builtin_cmd(args[0])) {
|
||||
int pid = fork();
|
||||
|
||||
@ -6,6 +6,11 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/**
|
||||
* Attend que l'utilisateur appuie sur entrée pour récupérer la ligne écrite
|
||||
* puis la renvoi
|
||||
* @return La ligne écrite par l'utilisateur
|
||||
*/
|
||||
char *read_line() {
|
||||
char c;
|
||||
int i = 0;
|
||||
@ -29,6 +34,12 @@ char *read_line() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sépare une ligne par des espaces (pour la ligne "ls -l" ça va renvoyer {"ls",
|
||||
* "-l"})
|
||||
* @param char *line la ligne à parser
|
||||
* @return la liste des arguments de la commande
|
||||
*/
|
||||
char **split_line(char *line) {
|
||||
char **args = malloc(BUFSIZE * sizeof(char *));
|
||||
int i = 0;
|
||||
@ -49,12 +60,23 @@ char **split_line(char *line) {
|
||||
return args;
|
||||
}
|
||||
|
||||
/**
|
||||
* La boucle du shell, elle consiste en trois étapes :
|
||||
* - Quand l'utilisateur appui sur entrer pour récupérer son entrée standard
|
||||
* - Parser la ligne en fonction de ses espaces
|
||||
* - Exécuter la commande demandée
|
||||
* @see char* read_line()
|
||||
* @see char** split_line(char *line)
|
||||
* @see int execute_cmd(char **args)
|
||||
*/
|
||||
void shell_loop(void) {
|
||||
char *user = getenv("USER");
|
||||
|
||||
char *hostname = malloc(BUFSIZE * sizeof(char));
|
||||
if (hostname == NULL) {
|
||||
dprintf(STDERR_FILENO, "Allocation error");
|
||||
}
|
||||
// sur le sgf le hostname se récupèrera pas comme ça donc à changer :)
|
||||
gethostname(hostname, sizeof(hostname));
|
||||
|
||||
char *line;
|
||||
@ -62,7 +84,7 @@ void shell_loop(void) {
|
||||
int status = 1;
|
||||
|
||||
do {
|
||||
|
||||
// ça aussi c'est pas bien, ça sera à changer une fois le sgf fonctionnel
|
||||
dprintf(STDOUT_FILENO, "%s@%s %s> ", user, hostname, getenv("PWD"));
|
||||
line = read_line();
|
||||
args = split_line(line);
|
||||
@ -72,3 +94,4 @@ void shell_loop(void) {
|
||||
free(args);
|
||||
} while (status);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user