BDOSPTR |
Pointeur de base DOS |
---|---|
Turbo C++ | dos.h |
Syntaxe
int bdosptr(int dosfun, void *argument, unsigned dosal); |
Paramètres
Nom | Description |
---|---|
dosfun | Ce paramètre permet d'indiquer le numéro de la fonction DOS à appeler via INT 21h. Correspond à la valeur placée dans le registre AH avant l'interruption. |
argument | Ce paramètre permet d'indiquer le pointeur vers un bloc de données à transmettre à DOS. Cette valeur est placée dans le registre DX avant l'appel de l'interruption. Peut être utilisée pour pointer vers une chaîne de caractères, une structure, ou un tampon mémoire. |
dosal | Ce paramètre permet d'indiquer la valeur étant placée dans le registre AL. Certaines fonctions DOS utilisent AL comme un sous-paramètre. |
Description
Cette fonction permet d'effectuer un appel système DOS.
Remarques
- bdosptr offre un accès direct à de nombreux appels système DOS.
- Pour les appels système nécessitant un argument entier, utilisez bdos; s'ils nécessitent un paramètre pointeur, utilisez bdosptr.
- Dans les modèles de données volumineux (compact, large et huge), il est important d'utiliser bdosptr pour les appels système nécessitant un pointeur comme paramètre.
- Dans les modèles de données compact, le paramètre d'argument de bdosptr spécifie DX ; dans les modèles de données volumineux, il fournit les valeurs DS:DX à utiliser par l'appel système.
- dosal est la valeur du registre AL.
- Valeur de retour : La valeur de retour de bdosptr est la valeur de AX en cas de succès ou -1 en cas d'échec. En cas d'échec, les variables globales errno et _doserrno sont définies.
- Portabilité : bdosptr est spécifique à DOS.
Exemple
- #include <string.h>
- #include <stdio.h>
- #include <dir.h>
- #include <dos.h>
- #include <errno.h>
- #include <stdlib.h>
-
- #define BUFLEN 80
-
- int main (void) {
- char buffer[BUFLEN];
- int test;
- printf("Entrez le chemin d'accès complet d'un répertoire :");
- gets(buffer);
- test=bdosptr(0x3B, buffer, 0);
- if(test) {
- /* Voir errno.h pour la liste des numéros d'erreur */
- printf("Message d'erreur DOS : %d\n", errno);
- exit(1);
- }
- getcwd(buffer, BUFLEN);
- printf("Le répertoire actuel est : %s\n", buffer);
- return 0;
- }
Voir également
bdos, geninterrupt, int86, int86x, intdos, intdos.
Dernière mise à jour : Dimanche, le 28 Février 2021