Interruption 21h |
Fonction 0Fh |
Ouvrir un fichier par le FCB |
---|---|---|
CP/M, DOS 1.0+, OS/2, Windows NT |
Description
Cette fonction permet d'ouvrir un fichier en utilisant l'ancienne méthode du FCB (File Control Block).
Entrée
Registre | Valeur ou description | ||
---|---|---|---|
AH | 0Fh | ||
DS:DX | Cette paire de registres permet d'indiquer l'adresse du tampon FCB du fichier. Vous pouvez utiliser le bloc de FCB normal : | ||
Déplacement | Longueur | Description | |
00h | 1 octet | Ce champ contient l'unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...) | |
01h | 8 octets | Ce champ contient le nom du fichier avec des espaces s'il n'est pas assez long | |
09h | 3 octets | Ce champ contient l'extension du fichier avec des espaces s'il n'est pas assez long | |
0Ch | 2 octets (1 mot) | Ce champ contient le numéro du bloc courant | |
0Eh | 2 octets (1 mot) | Ce champ contient la taille de l'enregistrement | |
10h | 4 octets (2 mots) | Ce champ contient la taille du fichier | |
14h | 2 octets (1 mot) | Ce champ contient la date de la dernière modification | |
16h | 2 octets (1 mot) | Ce champ contient l'heure de la dernière modification | |
18h | 8 octets | Ce champ est réservé pour un usage interne ou futur | |
20h | 1 octet | Ce champ contient le numéro de l'enregistrement courant | |
21h | 4 octets | Ce champ contient le numéro de l'enregistrement pour l'accès séquentiel | |
ou le bloc de FCB étendue: | |||
Déplacement | Longueur | Description | |
00h | 1 octet | Ce champ contient un identificateur de FCB étendu (FFh) | |
01h | 5 octets | Ce champ est réservé pour un usage interne ou futur | |
06h | 1 octet | Ce champ contient les attributs de fichier | |
07h | 1 octet | Ce champ contient l'unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...) | |
08h | 8 octets | Ce champ contient le nom du fichier avec des espaces s'il n'est pas assez long | |
10h | 3 octets | Ce champ contient l'extension du fichier avec des espaces s'il n'est pas assez long | |
13h | 2 octets (1 mot) | Ce champ contient le numéro du bloc courant | |
15h | 2 octets (1 mot) | Ce champ contient la taille de l'enregistrement | |
17h | 4 octets (2 mots) | Ce champ contient la taille du fichier | |
1Bh | 2 octets (1 mot) | Ce champ contient la date de la dernière modification | |
1Dh | 2 octets (1 mot) | Ce champ contient l'heure de la dernière modification | |
1Fh | 8 octets | Ce champ est réservé pour un usage interne ou futur | |
27h | 1 octet | Ce champ contient le numéro de l'enregistrement courant | |
28h | 4 octets | Ce champ contient le numéro de l'enregistrement pour l'accès séquentiel |
Sortie
Registre | Valeur ou description | |
---|---|---|
AL | Ce registre permet d'indiquer le résultat de l'opération : | |
Valeur | Description | |
0 | Fichier trouvé et ouvert | |
255 | Fichier introuvable |
Remarques
- Si le fichier est ouvert correctement, le système d'exploitation écrira dans le FCB la taille du fichier, la date et l'heure de sa dernière modification automatiquement.
- Cette fonction supporte aussi bien les FCB en format normal que les FCB étendues.
- Si la fonction s'est exécuté correctement, le pointeur de fichiers est déplacé sur le premier octet du fichier (position 0).
- Pour les MS-DOS version 2 à 7 : Microsoft recommande d'utiliser les Handle pour la manipulation des fichiers plutôt que les FCB , ainsi vous devriez utiliser l'Interruption 21h, Fonction 3Dh (Ouverture de fichier). Ainsi, Microsoft cherche à abandonner l'approche du système d'exploitation CP/M pour celui d'un système d'exploitation davantage centralisé.
- Si votre programme va utiliser une taille d'enregistrement autre que 128 octets, il doit définir le champ de taille d'enregistrement au déplacement 0Eh du FCB après l'ouverture réussie du fichier et avant toute autre opération sur le disque.
- Si l'accès aléatoire doit être effectué, le programme appelant doit également définir le champ d'enregistrement relatif FCB (déplacement 21h) après avoir ouvert le fichier avec succès.
- Pour le format de l'heure et de la date du répertoire, voir Interruption 21h Fonction 57h.
- A partir de la version 3.0 du système d'exploitation DOS, si le programme s'exécute sur un réseau, le fichier est ouvert pour un accès en lecture et écriture en mode de partage de compatibilité.
Références
La Bible du PC: Programmation système - Sixième Edition, Edition Micro-Application, Michael Tischer, 1996, ISBN: 2-7429-0544-8, page 1501.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 139 à 141.
Quick Reference: Programmer avec les fonctions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04061-8, page 24 à 25.
Dernière mise à jour : Jeudi, le 3 mars 2016