Projet GenealFS

YANN PROBST
Sommaire
- But du projet
- Problèmes rencontrés et solutions apportées
- Découpage du projet
- Code

- Utiliser le filesystem pour afficher des informations à l'écran
Objectif du projet

Problèmes rencontrés et solutions apportées
- comprendre le fonctionnement des filesystem
- pour mettre les chemins --> str_cat
- j'ai trop pris de retard au début
- respect de la norme
Découpage du projet
- fonction avec les fonctions stat/lstat
- fonction pour les chemins str_cat
- fonction d'affichage, pas réussi
- répartition en fonction des arguments
char *str_cat(char *str, char *str2)
{
char *tmp;
int i;
int j;
j = 0;
i = 0;
if ((tmp = malloc(sizeof(*tmp) * (my_strlen(str) + (my_strlen(str2) + 2)))) == NULL)
return (NULL);
while (str[i] != '\0')
{
tmp[j] = str[i];
i = i + 1;
j = j + 1;
}
if (tmp[i - 1] != '/')
{
tmp[i] = '/';
j = j + 1;
}
i = 0;
while (str2[i] != '\0')
{
tmp[j] = str2[i];
i = i + 1;
j = j + 1;
}
tmp[j] = '\0';
return (tmp);
}
int my_symbolic_link(char *name)
{
struct stat sb;
if (lstat(name, &sb) == -1)
return (-1);
if (S_ISLNK(sb.st_mode))
return (1);
return (0);
}
int is_folder(char *name)
{
struct stat sb;
if (stat(name, &sb) == -1)
return (-1);
if (S_ISDIR(sb.st_mode))
{
return (1);
}
else
return (0);
}
int my_city(int ac, char **av, char *name)
{
int fd;
int len;
char buf[READ_SIZE + 1];
fd = open(av[1], O_RDONLY);
len = read(fd, buf, READ_SIZE);
buf[len] = '\0';
}
int group_write(char *name)
{
struct stat sb;
if (stat(name, &sb) == -1)
return (-1);
if (S_IWGRP & sb.st_mode)
{
return (1);
}
else
return (0);
}
int group_read(char *name)
{
struct stat sb;
if (stat(name, &sb) == -1)
return (-1);
if (S_IRGRP & sb.st_mode)
{
return (1);
}
else
return (0);
}
deck
By Yann Probst
deck
- 41