Interruption 21h |
Fonction 3Ch |
Créer ou vider le ficher par le Handle |
---|---|---|
DOS 2.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 la méthode du Handle. Si le fichier spécifié existe déjà, il est tronqué à une longueur nulle. Dans les deux cas, le fichier est ouvert et un identificateur de descripteur Handle est retournée et pouvant utilisée par le programme pour un accès ultérieur au fichier.
Entrée
Registre | Valeur ou description | |
---|---|---|
AH | 3Ch | |
CX | Ce registre permet d'indiquer l'attribut de fichier : | |
Bits | Description | |
0 | Ce bit est mit à 1 pour indiquer que le fichier a l'attribut lecteur seulement | |
1 | Ce bit est mit à 1 pour indiquer que le fichier a l'attribut caché | |
2 | Ce bit est mit à 1 pour indiquer que le fichier a l'attribut système | |
3 à 6 | Ces bits doivent toujours être mit à 0 | |
7 | Ce bit est mit à 1 pour indiquer que le fichier est partageable | |
DS:DX | Cette paire de registres permet d'indiquer l'adresse du nom de fichier sous forme de chaine de caractères ASCIZ |
Sortie
Registre | Valeur ou description | |||
---|---|---|---|---|
FC | Ce registre de drapeau de retenue permet d'indiquer le résultat de l'opération : | |||
Valeur | Description | |||
0 | Cette valeur permet d'indiquer que la création a été un succès, et dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer l'identificateur de descripteur Handle du fichier | |||
1 | Cette valeur permet d'indiquer qu'une erreur s'est produite et dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer le code d'erreur : | |||
Code | Description | |||
3 | Cette erreur permet d'indiquer que le chemin est introuvable | |||
4 | Cette erreur permet d'indiquer qu'il y a trop de fichiers ouverts simultanément | |||
5 | Cette erreur permet d'indiquer que l'accès est refusé |
Remarques
- La fonction échoue si : aucun élément du nom de chemin n'existe, le fichier est en cours de création dans le répertoire racine et le répertoire racine est plein ou un fichier portant le même nom et l'attribut en lecture seule existe déjà dans le répertoire spécifié.
- A partir de la version 3.0 du système d'exploitation DOS, si le programme s'exécute sur un réseau et l'utilisateur exécutant le programme ne dispose pas de droits d'accès suffisants, un échec se produira.
- Un fichier reçoit généralement un attribut normal (0) lors de sa création. L'attribut du fichier peut ensuite être modifié avec l'interruption 21h, fonction 43h.
- A partir de la version 3.0 du système d'exploitation DOS, une étiquette de volume peut être créée à l'aide d'un attribut 0008h, s'il n'en existe pas déjà un. Lorsque les fichiers sont créés, le bit 3 du paramètre d'attribut doit toujours être effacé (0).
- A partir de la version 3.0 du système d'exploitation DOS, vous devriez consulter l'interruption 21h, fonction 5Ah et fonction 5Bh, lesquelles pouvant également être utilisées pour créer des fichiers.
- A partir de la version 4.0 du système d'exploitation DOS, l'interruption 21h, fonction 6Ch combine les services des fonctions 3Ch, 3Dh et 5Bh.
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 1524.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 207 à 209.
Dernière mise à jour : Jeudi, le 3 mars 2016