OPENO

Sommaire


Openopermet d'ouvrir et de fermer un fichier séquentiel en écriture seulement.

 

Syntaxe

   Openo [ exp_nomfic [, exp_depl ] ]  [ Usingabrev]

 

Paramètres

Elément

Description

Restrictions

exp_nomfic

Expression de type Char dont le résultat est le chemin d'un fichier (Unix ou MS-DOS).

Aucune.

exp_depl

Expression numérique de la valeur initiale du déplacement (seek).

0 <= exp_depl <= taille dufichier.

abrev

Abréviation désignant le fichier ouvert.

Aucune.

 

Exemples

   # Ouverture d'un fichier pour écriture avec troncature préliminaire
   Openofilpath('tmp','rdfile',''), 1024

   # Fermeture du dernier fichier ouvert pour écriture
   Openo

   # On veut écrire sur la sortie standard (écran)
   Openo "*"

   # Création d'un fichier rempli d'octets nuls !
    NOMFIC = '/tmp/octets.nuls' : TAILLE = 100000
   
OpenoNOMFIC           :# Ouverture+création si inexistant,troncature
   
Openo NOMFIC, TAILLE   :# Réouverture en l'amenant à la bonne taille

   # Ouverture d'un fichier se trouvant sur la machine "distrib"
   Openo"distrib@"+[L]NOMFIC

   # Ouverture du fichier X3.ini se trouvant sur le client
   Openo"#@C:\X3\X3.ini"

   # Ouverture de deux fichiers
   Openofilpath('tmp','rdfile1','') Using [YYY]
   
Openo filpath('tmp','rdfile2','')Using [ZZZ]

   # Fermeture des deux fichiers précédemment ouvert
   Openo Using [YYY]
   Openo Using [ZZZ]

 

Description et commentaires

Openopermet d'ouvrir un fichier pour écriture par Wrseq et Putseq.

Par convention, le poste client est désigné par le serveur #.

La valeur donnée en 2ème paramètre permet de tronquer le fichier au préalable à une longueur donnée avant de commencer les écritures, c'est-à-dire :

Lorsque l'ouverture est faite, la fonction adxseek(1) ou adxseek(abrev) contient la position courante du pointeur, c'est-à-dire ici la taille actuelle du fichier éventuellement tronqué.

La clause Using permet d'attribuer une abréviation à un fichier séquentiel ouvert. Par conséquent, il est possible d'ouvrir jusqu'à 16 fichiers séquentiels simultanément sous réserve de la valeur du paramètre adxmso.

Fichier sans abréviation :

Fichier avec abréviation :

Si Openoest utilisé avec un nom de fichier égal à '*', la sortie standard d'Adonix (enprincipe l'écran) est affectée au fichier ouvert, ce qui permet d'écrire lescaractères à l'écran sans décodage.

 

Remarques

Dans tous les cas, Openoconserve le fichier avec tous ses liens s'il y en a (il ne fait jamaisd'effacement du fichier, toujours des troncatures). Pour supprimer les liens dufichier s'il existe, il faut l'effacer ou le recopier au préalable (par exemplegrâce à l'instruction System).

Si aucun paramètre de troncature n'est donné, Openo ouvre le fichier en ajout(exp_depl est négatif par défaut).

Openocrée un fichier s'il n'existe pas, seulement si celui-ci a été ouvert pourtroncature (exp_depl = 0) ou pour ajout en fin de fichier (exp_depl < 0).Dans les autres cas, l'erreur PAFIC est provoquée.

Pour ne pas avoir à effacer le fichier à tronquer, Openo procède en recopiant la partie dufichier à conserver dans un fichier temporaire, puis il tronque le fichier à lalongueur nulle et recopie le fichier temporaire dessus. L'Openo peut doncêtre long en exécution (il est ininterruptible par interruption soft). De plus,il importe de vérifier qu'il y a assez de place disque pour recopier la partiedu fichier à tronquer. Dans le cas contraire, une erreur 'Plus de place disque'surviendrait. De même, l'ouverture d'un fichier pour l'amener à une taillesupérieure à sa taille d'origine peut être longue et source d'erreurs s'il n'ya plus de place disque, car Adonix écrit des octets nuls jusqu'à parvenir à labonne taille.

Il importe de prendre garde aux accès concurrents à un fichier ouvert par Openo. Pourgérer les problèmes d'accès à un même fichier par une application Adonix, ilest conseillé de verrouiller un même symbole (voir Lock). Il faut êtreconscient du fait que les transactions ne gèrent pas les mises à jour defichier séquentiels.

Les écritures dans un fichier étant bufferisées, elles ne sont effectivesqu'après la fermeture de ce fichier par l'Openo final. Ceci implique qu'avantcette opération, la taille du fichier sur disque peut être inchangée après desWrseq/Putseq.

Particularités Web

En web, il n'est pas possible d'ouvrir un fichier sur le poste client.

Erreurs associées

Erreur

Description

ERMODE(10)

exp_nomficn'est pas de type Char ou exp_depl n'est pas de type numérique.

ERDOM(50)

Le2ème argument n'est pas entier.

ERMDISK(44)

Plusde place sur disque.

ERACCE(27)

Accèsimpossible (permission refusée).

PAFIC(20)

Fichier(ou répertoire du chemin d'accès) inexistant.

ERULIM(65)

Taillemaxi autorisée pour un fichier atteinte.

ERCHAN(60)

Pasassez de canaux disponibles pour l'ouverture (qui en nécessite 1).

ERSYST(25)

Erreursystème (problème à la connexion sur machine distante).

 

Mots-clés associés

OPENI - OPENIO - SEEK - GETSEQ - PUTSEQ - RDSEQ - WRSEQ - IOMODE -ADXIFS - ADXIRS - ADXIUM -ADXSEEK - ADXMAC - ADXMSO


SOMMAIRE

Adonix X3(r) L4G
Copyright (c) Adonix 1999 - All rights reserved