My Project
Chargement...
Recherche...
Aucune correspondance
fichier.h
Aller à la documentation de ce fichier.
1/*----------------------------------------------------------------------------*/
2/* Définition des fichiers de Manux. */
3/* */
4/* Pour le moment très simplifié : on ne se soucis pas d'ouvrir ou de fermer */
5/* par exemple */
6/* (C) Manu Chaput 2002-2023 */
7/*----------------------------------------------------------------------------*/
8#ifndef FICHIER_DEF
9#define FICHIER_DEF
10
11#include <manux/inoeud.h>
12#include <manux/appelsysteme.h> // ParametreAS
13
14typedef struct _Fichier Fichier;
15
19#define FMODE_READ 0x0001
20#define FMODE_WRITE 0x0002
21
27#define O_RDONLY 0x0001
28#define O_WRONLY 0x0002
29#define O_RDWR (O_RDONLY|O_WRONLY)
30#define O_NONBLOCK 0x0004
31#define O_SYNC 0x0008
32
36typedef struct _MethodesFichier {
37 int (*ouvrir) (INoeud * iNoeud, Fichier * f, uint16_t fanions, uint16_t mode);
38 int (*fermer) (Fichier * f);
39 size_t (*ecrire) (Fichier * f, void * buffer, size_t nbOctets);
40 size_t (*lire) (Fichier * f, void * buffer, size_t nbOctets);
42
46typedef struct _Fichier {
47 void * prive;
51 // MethodesFichier * methodes;
52} Fichier;
53
54int fichierEcrire(Fichier * f, void * buffer, int nbOctets);
55
56#ifdef MANUX_APPELS_SYSTEME
57
61int sys_fermer(ParametreAS as, int fd);
62
63int sys_ecrire(ParametreAS as, int fd, void * buffer, int nbOctets);
68int sys_lire(ParametreAS as, int fd, void * buffer, int nbOctets);
72#endif
73
74void sfInitialiser(void);
75/*
76 * Initialisation de tout ce qui est lié au SF
77 */
78
86int fichierOuvrir(INoeud * iNoeud, Fichier * f, uint16_t fanions, uint16_t mode);
87
88int fichierFermer(Fichier * f);
89
90#ifdef MANUX_KMALLOC
97Fichier * fichierDupliquer(Fichier * f);
98
102Fichier * fichierCreer(INoeud * iNoeud, uint16_t fanions, uint16_t mode);
103
104#endif // MANUX_KMALLOC
105
106#endif
int fichierFermer(Fichier *f)
Fermeture d'un fichier.
Definition fichier.c:168
void sfInitialiser(void)
Definition fichier.c:129
struct _MethodesFichier MethodesFichier
: Définition des opérations réalisables sur un fichier
int fichierOuvrir(INoeud *iNoeud, Fichier *f, uint16_t fanions, uint16_t mode)
: Ouverture d'un fichier.
Definition fichier.c:145
int fichierEcrire(Fichier *f, void *buffer, int nbOctets)
Definition fichier.c:36
struct _Fichier Fichier
: Qu'est-ce qu'un fichier ouvert du point de vue du noyau ?
Definition fichier.h:14
unsigned long size_t
Definition stddef.h:14
unsigned short uint16_t
Definition types.h:16
int fd[2]
: description des noeuds d'information (C) Manu Chaput 2002-2023
: Qu'est-ce qu'un fichier ouvert du point de vue du noyau ?
Definition fichier.h:46
INoeud * iNoeud
Caractérisation de la structure.
Definition fichier.h:48
void * prive
Caractérisation du fichier ouvert.
Definition fichier.h:47
uint16_t fanions
O_RDONLY, O_NONBLOCK, O_SYNC.
Definition fichier.h:50
uint16_t mode
FMODE_READ, FMODE_WRITE, ... pour création.
Definition fichier.h:49
: Un INoeud représente un fichier, d'un point de vue statique Il s'agit donc de la description d'un f...
Definition inoeud.h:27
: Définition des opérations réalisables sur un fichier
Definition fichier.h:36
int(* fermer)(Fichier *f)
Definition fichier.h:38
int(* ouvrir)(INoeud *iNoeud, Fichier *f, uint16_t fanions, uint16_t mode)
Definition fichier.h:37
size_t(* lire)(Fichier *f, void *buffer, size_t nbOctets)
Definition fichier.h:40
size_t(* ecrire)(Fichier *f, void *buffer, size_t nbOctets)
Definition fichier.h:39