Interruption 21h |
Fonction 6Ch |
Ouverture ou création étendues d'un fichier par Handle |
---|---|---|
DOS 4.0+, OS/2, Windows NT |
Description
Cette fonction permet l'ouverture ou la création étendues d'un fichier par Handle.
Entrée
Registre | Valeur ou description | |||
---|---|---|---|---|
AX | 6C00h | |||
BL | Ce registre permet d'indiquer le mode d'accès : | |||
Bits | Description | |||
0 à 2 | Ce bit indique le mode d'autorisation de la lecture et de l'écriture: | |||
Code | Description | |||
000b | Ce code indique que le fichier peut uniquement être lut | |||
001b | Ce code indique que le fichier peut uniquement être écrit | |||
010b | Ce code indique que le fichier peut être lus et écrit | |||
3 | Ce bit doit toujours être mit à 0 | |||
4 à 6 | Ce bit indique le mode de partage de l'accès au fichier: | |||
Code | Description | |||
000b | Ce code indique qu'uniquement le programme courant peut accéder au fichier en mode FCB | |||
001b | Ce code indique qu'uniquement le programme courant peut accéder au fichier | |||
010b | Ce code indique qu'un autre programme peut lire le fichier mais non l'écrire | |||
011b | Ce code indique qu'un autre programme peut lire et écrit le fichier | |||
7 | Ce bit indique le comportement d'héritage du Handle: | |||
Code | Description | |||
0 | Ce code indique que le programme-enfant du programme courant peut accéder au Handle de ce fichier | |||
1 | Ce code indique que seul le programme courant peut accéder au Handle de ce fichier | |||
BH | Ce registre permet d'indiquer le mode de traitement : | |||
Bits | Description | |||
0 à 4 | Ces bits doivent toujours être à 0 | |||
5 | Ce bit contient la valeur 1 lorsqu'on souhaite que le code d'erreur soit retourner plutôt qu'un appel à l'interruption 24h. | |||
6 | Ce bit contient la valeur 1 lorsqu'on souhaite que le tampon de fichier soit vidé à chaque accès. | |||
7 | Ce bit doivent toujours être à 0 | |||
CX | Ce registre permet d'indiquer l'attribut du fichier : | |||
Bits | Description | |||
0 | Ce bit contient la valeur 1 si l'attribut de fichier est en mode lecture seulement | |||
1 | Ce bit contient la valeur 1 si l'attribut de fichier est en mode caché | |||
2 | Ce bit contient la valeur 1 si l'attribut de fichier est en mode système | |||
3 à 4 | Ces bits doivent toujours être à 0 | |||
5 | Ce bit contient la valeur 1 si l'attribut de fichier est en mode archivage | |||
6 à 7 | Ces bits doivent toujours être à 0 | |||
DL | Ce registre permet d'indiquer l'action en cas de rencontre ou d'absence du fichier : | |||
Bits | Description | |||
0 à 3 | Ces bits indique l'action à prendre si le fichier existe: | |||
Code | Description | |||
0000b | Ce code indique qu'il faut abandonné | |||
0001b | Ce code indique qu'il faut l'ouvrir | |||
0010b | Ce code indique qu'il faut le remplacer et l'ouvrir | |||
4 à 7 | Ces bits indique l'action à prendre si le fichier n'existe pas: | |||
Code | Description | |||
0000b | Ce code indique qu'il faut abandonné | |||
0001b | Ce code indique qu'il faut le créer | |||
DH | 00h | |||
DS:SI | 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 | |||
---|---|---|---|---|
CF | Ce registre de drapeau de retenue permet d'indiquer le résultat de l'opération : | |||
Valeur | Description | |||
0 | Cette valeur permet d'indiquer l'opération a été un succès et dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer le Handle du fichier | |||
CX | Ce registre permet d'indiquer le mode d'ouverture effectué : | |||
Code du mode | Description | |||
01h | Cette code indique que le fichier est ouvert | |||
02h | Cette code indique que le fichier a été créé | |||
03h | Cette code indique que le fichier a été remplacé | |||
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 d'erreur | Description | |||
1 | Cette erreur permet d'indiquer que le numéro de la fonction n'est pas valide | |||
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é | |||
12 | Cette erreur permet d'indiquer que le code d'accès est incorrecte |
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 rempli, le fichier est en cours de création et un fichier portant le même nom et l'attribut en lecture seule existe déjà dans le répertoire spécifié ou le programme s'exécute sur un réseau et l'utilisateur exécutant le programme a des droits d'accès insuffisants.
- 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.
- Cette fonction combine les capacités des interruptions 21h, fonctions 3Ch, 3Dh et 5Bh. Il a été ajouté au DOS pour la compatibilité avec la fonction DosOpen du système d'exploitation OS/2.
Dernière mise à jour : Jeudi, le 3 mars 2016