Tanguy MAZE e9c0babd14 added open, close, read, write description to README.org
added non-exaustive description of file descriptor manipulating functions
2018-10-28 17:56:34 +01:00
2018-10-27 18:13:24 +02:00

42Minishell

Minishell project from Ecole 42

Fonctions authorisées

int access(const char *path, int mode)

#include <unistd.h>

permet de vérifier si le fichier désigné par path est accessible selon les permissions indiquées par mode.

valeurs possibles de mode

valeur description
R_OK fichier lisible ?
W_OK fichier ecrivable ?
X_OK fichier exacutable/recherchable ?
F_OK fichier existe ?

valeurs de retour

valeur description
0 succès
-1 erreur (met à jour errno)

fonctions de manipulation de file descriptors

int open (const char *path, int oflag, ...)

#include <unistd.h>

ouvre le fichier spécifié par path en lecture et/ou écriture selon oflag. le file descriptor ainsi créé est retourné.

l'argument oflag

l'argument oflag permet de paramétrer le fd en liant différents flags par or (|).

valeur description
O_RDONLY ouvrir le fd en leture seule
O_WRONLY ouvrir le fd en écriture seule
O_RDWR ouvrir le fd en lecture et écriture
O_APPEND commencer l'écriture en fin de fichier
O_CREAT créer le fichier si inexistant
O_EXCL erreur si O_CREAT
O_NOFOLLOW ne pas suivre les liens symboliques
O_SYMLINK authorise l'ouverture de liens symboliques
valeurs de retour

En cas de succès, open retourne un entier positif désignant un fd. Sinon, la valeur -1 est retournée et errno est modifiée pour indiquer l'erreur.

int close(int filedes)

#include <unistd.h>

Supprime le descripteur filedes correctement. Bien que si un process quitte, les file descriptors associés sont free'd, clean s'occupe aussi de rendre le fd réutilisable, le nombre maximum de fd étant limité.

valeurs de retour
valeur escription
0 succès
-1 erreur (met à jour errno)

ssize_t read(int filedes, void *buf, size_t nbyte)

#include <sys/types.h> #include <sys/uio.h> #include <unistd.h>

Essaie de lire nbyte de données de l'objet référencé par filedes dans le buffer buf.

Pour les objets capable de recherche, la lecture démarre à la position indiquée par le pointeur associé à filedes. Après le retour de read, ce pointeur est incrémenté du nombre d'octets lu.

Pour les objets non-capable de recherche, la lecture se fait toujours de la même position et le pointeur associé à filedes est non-défini.

valeurs de retour
valeur description
>0 succès (nb d'octets lus)
0 succès et fin de fichier
-1 erreur (met à jour errno)

ssize_t write(int filedes, const void *buf, size_t nbyte)

#include <unistd.h>

Essaie d'écrire nbyte de données sur l'objet référencé par filedes depuis le buffer buf.

Pour les objets capable de recherche, l'écriture démarre à la position indiquée par le pointeur associé à filedes. Après le retour de write, ce pointeur est incrémenté du nombre d'octets écrits.

Pour les objets non-capable de recherche, l'écriture se fait toujours de la même position et le pointeur associé à filedes est non-défini.

Si l'utilisateur n'est pas super-user, alors write supprime le bit set-user-id du fichier. Ceci prévient une faille de sécurité où un utilisateur pourrais "capturer" un fd ouvert sur un ficher appartenant au super-user disposant du bit set-user-id.

valeurs de retour
valeur description
>0 succès (nb d'octets écrits)
0 succès et fin de fichier
-1 erreur (met à jour errno)

Todo list

TODO étudier les différents man du sujet [2/10]

  • access
  • open, close, read, write
  • getcwd, chdir
  • stat, lstat, fstat
  • fork, execve
  • wait, waitpid, wait3, wait4
  • signal, kill
  • exit
  • environ
  • builtin
Description
No description provided
Readme 353 KiB
Languages
C 96.8%
Makefile 3.2%