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:

Types de fichier pris en charge par le système de fichiers journalisé
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

Les sous-routines suivantes sont utilisées lors de la 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)

Les sous-routines suivantes peuvent être utilisées pour manipuler des fichiers:
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.