Section courante

A propos

Section administrative du site

 Langage  Elément  Programmation  Compilateur  IDE  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Type de données
EXE, DLL et modules pour OS/2
API pour OS/2
DOSCALLS.DLL
FKA.DLL
KBDCALLS.DLL
PMGPI.DLL
PMMERGE.DLL
PMSHAPI.DLL
PMWIN.DLL
QUECALLS.DLL
SESMGR.DLL
VIOCALLS.DLL
Géométrie
Treillis
IBM C/2
IBM VisualAge C++
Lattice C
Open Watcom C/C++
Borland C++ for OS/2 Version 1.0
Codes d'erreurs
Bibliographie
Préface
Notes légal
Dictionnaire
Recherche

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

PARTAGER CETTE PAGE SUR
Dernière mise à jour : Lundi, le 19 juillet 2010