Interruption 21h |
Fonction 16h |
Créer ou vider un fichier par le FCB |
---|---|---|
CP/M, DOS 1.0+, OS/2, Windows NT |
Description
Cette fonction permet d'effectuer la création ou de vider le contenu d'un fichier déjà existant en utilisant l'ancienne méthode du FCB (File Control Block).
Entrée
Registre | Valeur ou description | ||
---|---|---|---|
AH | 16h | ||
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 | Cette code indique que le fichier a été créer ou vider avec succès | |
255 | Cette code indique que le fichier n'a pu être créé |
Remarques
- Puisqu'un fichier existant portant le nom spécifié est tronqué à une longueur nulle (c'est-à-dire que toutes les données de ce fichier sont irrémédiablement perdues), cette fonction doit être utilisée avec prudence.
- Si cette fonction est appelée avec un bloc de contrôle de fichier étendu (FCB), le nouveau fichier peut se voir attribuer un attribut spécial, tel que caché ou système, lors de sa création en définissant le bit approprié dans l'octet d'attribut du FCB étendu.
- Puisque cette fonction ouvre également le fichier, un appel ultérieur à l'interruption 21h, fonction 0Fh n'est pas requise.
- Pour le format de l'heure et de la date du répertoire, voir l'interruption 21h, fonction 57h.
- A partir de la version 2.0 du système d'exploitation DOS, les interruptions 21h, les fonctions 3Ch, 5Ah, 5Bh et 6Ch, fournissant un accès complet à la structure de répertoire hiérarchique, doivent être utilisées de préférence à cette fonction.
- A partir de la version 3.0 du système d'exploitation DOS, si le programme s'exécute sur un réseau, l'utilisateur doit disposer des droits de création sur le répertoire contenant le nouveau fichier.
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 1504.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 154 à 156.
Quick Reference: Programmer avec les fonctions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04061-8, page 31 à 32.
Dernière mise à jour : Jeudi, le 3 mars 2016