Types de fichiers
Un fichier est un tableau unidimensionnel d'octets avec au moins un lien fixe (nom de fichier). Les fichiers peuvent contenir des informations ASCII ou binaires.
Les fichiers contiennent des données, des scripts shell ou des programmes. Les noms de fichier sont également utilisés pour représenter des objets abstraits, tels que des sockets, des canaux de communication et des pilotes de périphérique.
Le noyau ne distingue pas les limites d'enregistrement dans les fichiers standard, de sorte que les programmes peuvent établir leurs propres marqueurs de limite.
Les fichiers sont représentés dans le système de fichiers journalisé (JFS et JFS2) par des noeuds d'index de disque (i-node). Les informations sur le fichier (telles que la propriété, les modes d'accès, l'heure d'accès, les adresses de données et l'heure de modification) sont stockées dans l'i-node.
Le système de fichiers journalisé prend en charge les types de fichier suivants:
| Type defichier | Nom de macro utilisé dans mode.h | Descriptif |
|---|---|---|
| Ordinaire | S_ISREG | Séquence d'octets avec un ou plusieurs noms. Les fichiers ordinaires peuvent contenir des données ASCII ou binaires. Ces fichiers peuvent être consultés de manière aléatoire (lecture ou écriture) à partir de n'importe quel octet du fichier. |
| Répertoire | S_REP_ISDIR | Contient des entrées de répertoire (nom de fichier et paires i-number). Les formats de répertoire sont déterminés par le système de fichiers. Les processus lisent les répertoires comme ils font des fichiers ordinaires, mais le noyau se réserve le droit d'écrire dans un répertoire. Des ensembles spéciaux de sous-routines contrôlent les entrées de répertoire. |
| Bloc spécial | S_ISBLK | Associe un pilote de périphérique structuré à un nom de fichier. |
| Caractère spécial | S_ISCHR | Associe un pilote de périphérique non structuré à un nom de fichier. |
| canaux de communication | S_ISFIFO | Désigne un canal de communication interprocessus (IPC). La sous-routine mkfifo crée des tubes nommés. La sous-routine pipe crée des tubes sans nom. |
| Liens symboliques | S_ISNK | Fichier contenant un nom de chemin absolu ou relatif vers un autre nom de fichier. |
| Sockets | S_ISSOCK | Mécanisme IPC qui permet aux applications d'échanger des données. La sous-routine socket crée des sockets et la sous-routine bind permet de nommer les sockets. |
La taille maximale d'un fichier standard dans un système de fichiers JFS activé pour les fichiers volumineux est légèrement inférieure à 64 gigaoctets (68589453312). Dans les autres systèmes de fichiers activés pour les fichiers volumineux et dans les autres types de système de fichiers JFS, tous les fichiers non répertoriés comme standard dans le tableau précédent ont une taille de fichier maximale de 2 gigaoctets moins 1 (2147483647). La taille maximale d'un fichier dans JFS2 est limitée par la taille du système de fichiers lui-même.
La limite architecturale de la taille d'un système de fichiers JFS2 est de 252 octets, soit 4 pétaoctets. La taille de fichier maximale prise en charge par le noyau 64 bits est de 244 -4096 octets, soit un peu moins de 16 téraoctets.
La longueur maximale d'un nom de fichier est de 255 caractères et la longueur maximale d'un nom de chemin d'accès est de 1023 octets.
Utilisation des fichiers
Le système d'exploitation fournit de nombreuses sous-routines qui manipulent les fichiers. Pour obtenir de brèves descriptions des sous-routines de contrôle de fichiers les plus courantes, voir:
Création de fichiers
- création
- Crée un nouveau fichier standard vide
- liaison
- Crée un nom supplémentaire (entrée de répertoire) pour un fichier existant
- mkdir
- Crée un répertoire
- mkfifo
- Crée un canal de communication nommé
- Mknod
- Crée un fichier qui définit un périphérique
- Ouverture
- Crée un fichier vide si l'indicateur O_CREAT est défini
- canal de communication
- Crée une communication interprocessus
- prise
- Crée un socket
Manipulation de fichiers (programmation)
- access
- Détermine l'accessibilité d'un fichier.
- chmod
- Modifie les modes d'accès d'un fichier.
- Chown
- Modifie la propriété d'un fichier.
- Fermeture
- Ferme les descripteurs de fichiers ouverts (y compris les sockets).
- clair
- Crée de l'espace dans un fichier.
- fcntl, dup ou dup2
- Contrôler les descripteurs de fichiers ouverts.
- fsync
- Ecrit les modifications dans un fichier dans la mémoire permanente.
- ioctl
- Contrôle les fonctions associées aux descripteurs de fichiers ouverts, y compris les fichiers spéciaux, les sockets et la prise en charge des périphériques génériques, tels que l'interface de terminal général Termio.
- lockf ou flock
- Contrôler les descripteurs de fichiers ouverts.
- lseek ou llseek
- Déplacer la position du pointeur d'E-S dans un fichier ouvert.
- Ouverture
- Renvoie un descripteur de fichier utilisé par d'autres sous-routines pour faire référence au fichier ouvert. L'opération open utilise un nom de fichier standard et un mode d'autorisation qui indique si le fichier doit être lu et / ou écrit.
- read
- Extrait des données d'un fichier ouvert si les droits appropriés (O_RDONLY ou O_RDWR) ont été définis par la sous-routine open .
- changement de nom
- Modifie le nom d'un fichier.
- rmdir
- Supprime des répertoires du système de fichiers.
- stat
- Indique le statut d'un fichier, y compris le propriétaire et les modes d'accès.
- tronquer
- Modifie la longueur d'un fichier.
- écriture
- Insère des données dans un fichier ouvert si les droits appropriés (O_WRONLY ou O_RDWR) ont été définis par la sous-routine open .
Pour plus d'informations sur les types et les caractéristiques des systèmes de fichiers, voir Systèmes de fichiers dans Gestion des systèmes d'exploitation et des unités.