> Tech > L’API open()

L’API open()

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Pour ouvrir un fichier stream, utilisez l'API open(). Elle accepte des paramètres qui indiquent au système le fichier à  ouvrir et comment l'ouvrir, puis elle renvoie un descripteur de fichier pour que vous puissiez utiliser le fichier stream avec les autres API. La figure 2 montre le prototype pour l'API

L’API open()

open(). Les paramètres que
vous pouvez transmettre à  l’API
open() sont les suivants :

  • Path – Ce paramètre indique
    le nom de chemin du fichier que
    vous voulez ouvrir. Un nom de
    chemin est un nom de fichier
    avec zéro ou plus noms de répertoires
    en préfixe. Chaque nom de
    répertoire est séparé par le caractère
    barre oblique. Si un nom de
    chemin commence par une barre
    oblique, c’est qu’il démarre au répertoire
    racine de l’IFS ; dans le
    cas contraire, il démarre de votre
    répertoire courant.

  • OpenFlags – Ce paramètre
    fournit à  l’API open() des informations
    sur les modalités d’ouverture
    du fichier. Tout comme les fichiers base de données en RPG,
    un fichier stream peut être ouvert pour
    l’entrée (read-only), la sortie (writeonly)
    ou la mise à  jour (read and
    write). Vous pouvez aussi donner
    d’autres précisions : un fichier doit-il
    être créé s’il n’existe pas, doit-il être effacé
    s’il existe, doit-il être traduit vers
    ou à  partir d’un autre CCSID, ou doit-il
    être partagé avec d’autres programmes.
    Ce paramètre est de type indicateur
    binaire et il sera décrit plus en
    détail dans la suite de cet article.

  • Mode – Ce paramètre sert à  indiquer
    le degré d’autorité des autres utilisateurs
    sur ce fichier s’ils l’ouvrent.
    C’est un paramètre binaire et il est
    ignoré si le fichier existe déjà .

  • CCSID – Si le fichier stream que je
    suis en train d’ouvrir n’existe pas, ce
    paramètre spécifie le CCSID qui devrait
    être attribué à  ce fichier.

  • Txtcreatid – Ce paramètre spécifie
    le CCSID dans lequel les données
    sont renvoyées par des opérations de
    lecture, ou fournies aux opérations
    d’écriture, quand le fichier est ouvert
    comme un fichier texte.

L’API open() renverra un descripteur
de fichier si elle réussit. Si elle
échoue, elle renverra un -1 et définira
la valeur errno.
En figure 1, l’API open() ouvre un
fichier appelé hello.txt qui réside dans
le répertoire tmp de l’IFS. L’indicateur
O_CREAT indique que le fichier sera
créé s’il n’existe pas déjà , et l’indicateur
O_TRUNC qu’il sera effacé (tronqué)
s’il existe. L’indicateur O_WRONLY
dit à  l’API open() que le fichier doit
être ouvert pour la sortie uniquement.
La constante M_RDWR ordonne à  l’API
d’autoriser d’autres utilisateurs à  accéder
à  l’API pour la lecture et l’écriture.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010