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