Section courante

A propos

Section administrative du site

DosOpen

DOS : Ouvre
DOSCALLS.DLL os2.h

Syntaxe

USHORT DosOpen(PSZ FileName, PHFILE FileHandle, PUSHORT ActionTaken, ULONG FileSize, USHORT FileAttribute, USHORT OpenFlag, USHORT OpenMode, ULONG peaop2);

Paramètres

Nom Description
FileName Ce paramètre permet d'indiquer l'adresse du nom de chemin ASCIZ du fichier ou du périphérique à ouvrir.
FileHandle Ce paramètre permet d'indiquer l'adresse de l'identificateur du descripteur Handle du fichier. Un identificateur de descripteur Handle de fichier de zéro est valide.
ActionTaken Ce paramètre permet d'indiquer l'adresse de la variable recevant la valeur spécifiant l'action entreprise par la fonction DosOpen. Si la fonction DosOpen échoue, cette valeur n'a aucune signification. Sinon, il s'agit de l'une des valeurs suivantes :
Valeur Constante Description
1 FILE_EXISTED Cette valeur permet d'indiquer que le fichier existait déjà.
2 FILE_CREATED Cette valeur permet d'indiquer que le fichier a été créé.
3 FILE_TRUNCATED Cette valeur permet d'indiquer que le fichier existait et a été changé à une taille donnée (le fichier a été remplacé).
FileSize Ce paramètre permet d'indiquer la nouvelle taille logique du fichier (fin des données, EOD), en octets.
FileAttribute Ce paramètre permet d'indiquer les informations d'attribut de fichier. Les valeurs possibles sont affichées dans la liste suivante :
Bit Constante Description
31 à 6   Ces bits sont réservés et doivent être à 0.
5 FILE_ARCHIVED (0x00000020) Ce bit permet d'indiquer que le fichier a été archivé.
4 FILE_DIRECTORY (0x00000010) Ce bit permet d'indiquer que le fichier est un sous-répertoire.
3   Ce bit est réservé et doit être à 0.
2 FILE_SYSTEM (0x00000004) Ce bit permet d'indiquer que le fichier est un fichier système.
1 FILE_HIDDEN (0x00000002) Ce bit permet d'indiquer que le fichier est caché et n'apparaît pas dans une liste de répertoires.
0 FILE_READONLY (0x00000001) Ce bit permet d'indiquer que le fichier peut être lu mais pas être écrit.
Aucun bit FILE_NORMAL (0x00000000) Ce bit permet d'indiquer que le fichier peut être lu ou écrit. Les attributs de fichier s'appliquent uniquement si le fichier est créé.
Ces bits peuvent être définis individuellement ou en combinaison. Par exemple, une valeur d'attribut de 0x00000021 (bits 5 et 0 définis sur 1) indique un fichier en lecture seulement ayant été archivé.
OpenFlag Ce paramètre permet d'indiquer l'action à entreprendre selon que le fichier existe ou non. Les valeurs possibles sont affichées dans la liste suivante :
Bit Description
31 à 8 Ces bits sont réservés et doivent être à 0.
7 à 4 Ces bits permettent d'indiquer les drapeaux s'appliquant si le fichier n'existe pas :             
Valeur Constante Description
0000 OPEN_ACTION_FAIL_IF_NEW Cette valeur permet d'indiquer qu'il faut ouvrir un fichier existant; échoue si le fichier n'existe pas.
0001 OPEN_ACTION_CREATE_IF_NEW Cette valeur permet d'indiquer qu'il faut Créez le fichier s'il n'existe pas.
3 à 0 Ces bits permettent d'indiquer les drapeaux s'appliquant si le fichier existe déjà :
Valeur Constante Description
0000 OPEN_ACTION_FAIL_IF_EXISTS Cette valeur permet d'indiquer qu'il faut ouvrir le fichier; échoue si le fichier existe déjà.
0001 OPEN_ACTION_OPEN_IF_EXISTS Cette valeur permet d'indiquer qu'il faut ouvrir le fichier s'il existe déjà.
0010 OPEN_ACTION_REPLACE_IF_EXISTS Cette valeur permet d'indiquer qu'il faut remplacer le fichier s'il existe déjà.
OpenMode Ce paramètre permet d'indiquer le mode d'ouverture de la fonction. Les valeurs possibles sont affichées dans la liste suivante: :
Bit Description
31 à 16 Ces bits sont réservés et doivent être à 0.
15 Ce bit permet d'indiquer le mode de direction :
OPEN_FLAGS_DASD (0x00008000) Drapeau d'ouverture directe :
       0 pszFileName représente un fichier à ouvrir normalement.
       1 pszFileName est "unitP:" (tel que C: ou A:), et représente un disque ou un volume de disquette monté à ouvrir pour un accès direct.
14 Ce bit permet d'indiquer le drapeau d'écriture :
OPEN_FLAGS_WRITE_THROUGH (0x00004000) Drapeau d'écriture immédiate :
       0 Les écritures dans le fichier peuvent passer par le cache du pilote du système de fichiers. Le pilote du système de fichiers écrit les secteurs lorsque le cache est plein ou que le fichier est fermé.
       1 Les écritures dans le fichier peuvent passer par le cache du pilote du système de fichiers, mais les secteurs sont écrits (l'opération d'entrée/sortie de fichier réelle est terminée) avant qu'un appel d'écriture synchronisé ne revienne. Cet état du fichier le définit comme un fichier synchronisé. Pour les fichiers synchronisés, ce bit doit être défini, car les données doivent être écrites sur le support pour les opérations d'écriture synchronisés. Cet indicateur de bit n'est pas hérité par les processus enfants.
13 Ce bit permet d'indiquer le drapeau d'échec en cas d'erreur :
OPEN_FLAGS_FAIL_ON_ERROR (0x00002000) Drapeau d'échec en cas d'erreur. Les erreurs d'entrée/sortie des supports sont traitées comme suit :
Signalé via le gestionnaire d'erreurs critiques du système. Signalé directement à l'appelant au moyen d'un code retour. Les erreurs d'entrée/sortie de média générées via les commandes IOCtl de contrôle de disque logique de catégorie 08h sont toujours signalées directement à l'appelant par le biais du code retour. La fonction d'erreurs d'échec s'applique uniquement aux appels d'entrée/sortie de fichiers non basés sur IOCtl. Ce bit de drapeau n'est pas hérité par les processus enfants.
12 Ce bit permet d'indiquer le drapeau de cache :
OPEN_FLAGS_NO_CACHE (0x00001000) Indicateur No-Cache / Cache :
       0 Le pilote du système de fichiers doit placer les données des opérations d'entrée/sortie dans son cache.
       1 Les opérations d'entrée/sortie sur le fichier n'ont pas besoin d'être effectuées via le cache du pilote du système de fichiers. Le réglage de ce bit détermine si les pilotes du système de fichiers doivent placer les données dans le cache. Comme le bit d'écriture directe, il s'agit d'un bit par identificateur de descripteur Handle et n'est pas hérité par les processus enfants.
11 Ce bit est réservé et doit être à 0.
10 à 8 Ces bits permet d'indiquer la localité des drapeaux de référence contenant des informations sur la manière dont l'application doit accéder au fichier. Les valeurs sont les suivantes :
       000 OPEN_FLAGS_NO_LOCALITY (0x00000000)
           Aucune localité connue.
       001 OPEN_FLAGS_SEQUENTIAL (0x00000100)
           Accès principalement séquentiel.
       010 OPEN_FLAGS_RANDOM (0x00000200)
           Accès principalement aléatoire.
       011 OPEN_FLAGS_RANDOMSEQUENTIAL (0x00000300)
           Aléatoire avec une localité.
7 Ce bit permet d'indiquer la drapeau d'héritage :
OPEN_FLAGS_NOINHERIT (0x00000080) Drapeau d'héritage :
       0 Le descripteur de fichier est hérité par un processus créé à partir d'un appel à DosExecPgm.
       1 Le descripteur de fichier est privé du processus en cours. Ce bit n'est pas hérité par les processus enfants.
6 à 4 Ces bits permet d'indiquer les drapeaux du mode de partage. Ces bits définissent toutes les restrictions d'accès aux fichiers imposées par l'appelant sur d'autres processus. Les valeurs sont les suivantes :
       001 OPEN_SHARE_DENYREADWRITE (0x00000010)
            Refuser l'accès en lecture / écriture.
       010 OPEN_SHARE_DENYWRITE (0x00000020)
            Refuser l'accès en écriture.
       011 OPEN_SHARE_DENYREAD (0x00000030)
            Refuser l'accès en lecture.
       100 OPEN_SHARE_DENYNONE (0x00000040)
            Ne refusez ni l'accès en lecture ni en écriture (aucun refus). Toute autre valeur n'est pas valide.
3 Ce bit est réservé et doit être à 0.
2 à 0 Ces bits permet d'indiquer les drapeaux de mode d'accès. Ce champ définit l'accès au fichier requis par l'appelant. Les valeurs sont les suivantes :
        000 OPEN_ACCESS_READONLY (0x00000000)
             Accès en lecture seule
        001 OPEN_ACCESS_WRITEONLY (0x00000001)
             Accès en écriture seule
        010 OPEN_ACCESS_READWRITE (0x00000002)
Accès en lecture et écriture. Toute autre valeur n'est pas valide, de même que toute autre combinaison. Le partage de fichiers nécessite la coopération de processus de partage. Cette coopération se communique via des modes de partage et d'accès. Toutes les restrictions de partage placées sur un fichier ouvert par un processus sont supprimées lorsque le processus ferme le fichier avec une demande de fonction DosClose. Mode de partage : spécifie le type d'accès aux fichiers.
peaop2 Ce paramètre permet d'indiquer les attributs étendus. Ce paramètre est uniquement utilisé pour spécifier des attributs étendus (EA) lors de la création d'un nouveau fichier, du remplacement d'un fichier existant ou de la troncature d'un fichier existant. Lors de l'ouverture de fichiers existants, il doit être défini sur null. Entrée : l'adresse du tampon d'attribut étendu, contenant une structure EAOP2. Le paramètre fpFEA2List pointe vers une zone de données où se trouve la liste FEA2 appropriée. Les paramètres fpGEA2List et oError sont ignorés. Sortie : Les paramètres fpGEA2List et fpFEA2List sont inchangées. La zone vers laquelle pointe fpFEA2List est inchangée. Si une erreur s'est produite pendant l'ensemble, oError est le déplacer de l'entrée FEA2 où l'erreur s'est produite. Le code retour de DosOpen est le code d'erreur pour cette condition d'erreur. Si aucune erreur ne s'est produite, oError n'est pas défini. Si peaop2 est zéro, alors aucun attribut étendu n'est défini pour le fichier. Si les attributs étendus ne doivent pas être définis ou modifiés, alors le pointeur peaop2 doit être défini sur zéro.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
2 ERROR_FILE_NOT_FOUND Cette valeur permet d'indiquer qu'une erreur de fichier introuvable s'est produite.
3 ERROR_PATH_NOT_FOUND Cette valeur permet d'indiquer qu'une erreur de chemin introuvable s'est produite.
4 ERROR_TOO_MANY_OPEN_FILES Cette valeur permet d'indiquer qu'une erreur de trop de fichier ouvert simultanément s'est produite.
5 ERROR_ACCESS_DENIED Cette valeur permet d'indiquer qu'une erreur d'accès refusé s'est produite.
12 ERROR_INVALID_ACCESS Cette valeur permet d'indiquer une erreur d'accès invalide.
26 ERROR_NOT_DOS_DISK Cette valeur permet d'indiquer qu'une erreur de disque non-DOS s'est produite.
32 ERROR_SHARING_VIOLATION Cette valeur permet d'indiquer qu'une erreur de violation de partage s'est produite.
36 ERROR_SHARING_BUFFER_EXCEEDED Cette valeur permet d'indiquer qu'une erreur de dépassement de limite de tampon partagé s'est produite.
82 ERROR_CANNOT_MAKE Cette valeur permet d'indiquer qu'il n'est pas possible de le créer.
87 ERROR_INVALID_PARAMETER Cette valeur permet d'indiquer qu'un ou plusieurs des paramètres contient une valeur illégale.
99 ERROR_DEVICE_IN_USE Cette valeur permet d'indiquer que le périphérique est actuellement en utilisation.
108 ERROR_DRIVE_LOCKED Cette valeur permet d'indiquer qu'une erreur d'unité verrouillé s'est produite.
110 ERROR_OPEN_FAILED Cette valeur permet d'indiquer un échec d'ouverture de fichier ou de périphérique.
112 ERROR_DISK_FULL Cette valeur permet d'indiquer que l'unité de disque de destination est plein.
206 ERROR_FILENAME_EXCED_RANGE Cette valeur permet d'indiquer une erreur de nom de fichier excédant la limite du rang.
231 ERROR_PIPE_BUSY Cette valeur permet d'indiquer qu'une erreur de tuyau occupé s'est produite.

Description

Cette fonction permet d'ouvrir un fichier ou un périphérique pour des entrées/sorties d'applications.

Remarques

Voir également

Langage de programmation - C pour OS/2 - DosClose
Langage de programmation - C pour OS/2 - DosDevIOCtl
Langage de programmation - C pour OS/2 - DosDupHandle
Langage de programmation - C pour OS/2 - DosQueryHType
Langage de programmation - C pour OS/2 - DosSetFileInfo
Langage de programmation - C pour OS/2 - DosSetFilePtr
Langage de programmation - C pour OS/2 - DosSetFileSize
Langage de programmation - C pour OS/2 - DosSetMaxFH
Langage de programmation - C pour OS/2 - DosSetRelMaxFH
Système d'exploitation - OS/2 - Introduction

Dernière mise à jour : Lundi, le 19 juillet 2010