added directories functions
This commit is contained in:
parent
e9c0babd14
commit
b9cc126b44
110
README.org
110
README.org
@ -6,7 +6,7 @@
|
|||||||
# By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ #
|
# By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2018/10/26 13:33:24 by tmaze #+# #+# #
|
# Created: 2018/10/26 13:33:24 by tmaze #+# #+# #
|
||||||
# Updated: 2018/10/28 17:53:30 by tmaze ### ########.fr #
|
# Updated: 2018/10/30 09:52:19 by tmaze ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -15,115 +15,11 @@
|
|||||||
|
|
||||||
/Minishell project from Ecole 42/
|
/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 list
|
||||||
** TODO étudier les différents man du sujet [2/10]
|
** TODO étudier les différents man du sujet [3/10]
|
||||||
- [X] access
|
- [X] access
|
||||||
- [X] open, close, read, write
|
- [X] open, close, read, write
|
||||||
- [ ] getcwd, chdir
|
- [X] getcwd, chdir
|
||||||
- [ ] stat, lstat, fstat
|
- [ ] stat, lstat, fstat
|
||||||
- [ ] fork, execve
|
- [ ] fork, execve
|
||||||
- [ ] wait, waitpid, wait3, wait4
|
- [ ] wait, waitpid, wait3, wait4
|
||||||
|
Loading…
x
Reference in New Issue
Block a user