SPXFILE* SpxOpen(char* nom_fichier)
SpxOpen demande un nom de fichier (name).
Si name = ' ' alors SpxOpen ouvre une connexion vers Narcisse en utilisant la variable d'environnement DEST_SP3 qui doit être définie par l'application ou l'utilisateur de la libnarcisse et dans laquelle on doit mettre un nom de fichier aux conventions nx, c'est à dire de la forme :
où port_serveur est le numéro de port sur lequel Narcisse attend une connexion (par défaut port_serveur = 2101), nom_fichier est un nom de fichier se terminant par .spx (fichier binaire) ou .sp3 (fichier ASCII) et | commande est le pipe unix dirigé vers une commande (par exemple : | compress > toto.spx.Z).
machine est le nom de la machine ou tourne le serveur Narcisse que l'on désire atteindre. nom est le nom du propriétaire de Narcisse que l'on désire atteindre. Les trois champs machine, port_serveur et user peuvent être nuls. Par défaut machine est la machine sur laquelle on est, user est le nom de l'utilisateur et port_serveur est déterminé automatiquement par recheche du premier Narcisse ouvert sur la machine de nom machine.
Si DEST_SP3 n'existe pas ou prend une valeur nulle, un nom du type machine+port_serveur++user est généré automatiquement avec les conventions ci-dessus. Les formes machine+, machine+@ie32, machine+++user, machine+++user@ie32, machine+port_serveur+, ... sont acceptées ainsi que la forme machine+NARCISSE.n++user@ie32 où NARCISSE.n prend les conventions décrites ci-dessous et où les champs machine et user peuvent être nuls.
Si name = 'VISU' alors SpxOpen envoit les fichiers sur un spooler qui les stocke sur `home -ap`/VISU à Limeil et sur $HOME/VISU ailleurs.
Si name = NARCISSE.n où n est un entier valant 1 ou plus, alors SpxOpen ouvre une connexion vers Narcisse en utilisant la variable d'environnement DEST_SP3 dont il modifie le champ port_serveur si ce dernier existe. Il prend automatiquement le port_serveur du nième Narcisse ouvert sur la machine de nom machine. S'il y a seul Narcisse ouvert il faut prendre n = 1. Si n vaut 0 alors la connexion est réalisée avec le dernier Narcisse ouvert sur la machine.
On signale que si la variable d'environnement PORT_SERVEUR_SP3 vaut 0 au lancement de Narcisse alors ce dernier détermine automatiquement un port_serveur libre.
Si name ne prend pas les valeurs précédentes alors SpxOpen ouvre un fichier en suivant les conventions de nx (fichiers ou pipe ou sockets).
Si .sp3 est trouvé dans name alors le fichier sauvegardé sera un fichier de type ASCII éventuellement compressé si par exemple name vaut | compress > toto.sp3.Z.
SpxOpen renvoit un pointeur sur une connexion.
Si le pointeur est NULL, la connexion ne s'est pas ouverte.
SpxOpen doit être appelé avant toute utilisation des fonctions d'envoi de configuration et de données numériques de la nouvelle librairie narcisse.
Si la variable d'environnement DEBUG_SP3 existe (faire setenv DEBUG_SP3 en c-shell), quelques impressions sont réalisées par la librairie Narcisse.
Si la variable d'environnement SYNC_SP3 existe (faire setenv SYNC_SP3 en c-shell), un appel de synchronisation (voir SpxSync ci-dessous) est réalisé à chaque appel à SpxClose.