Rubrique précédente: OpenFile – Ouvrir un fichierRubrique suivante: ReadFile : Lire des données à partir d'un fichier


OpenPipe – Ouvrir un canal

Valide sous UNIX et Windows

Remarque : Cette fonction est nouvelle dans CA Client Automation et ne fonctionne pas avec les versions antérieures de l'interpréteur de scripts.

La fonction OpenPipe ouvre un canal nommé pour la lecture ou l'écriture d'un rôle serveur.

Format de la fonction :

OpenPipe(pipename as String, access as Integer) as Integer
pipename

Indique le nom du canal à ouvrir.

Sous UNIX, pipename est un nom de chemin valide.

Sous Windows, il se présente sous la forme suivante : \\.\pipe\xxx, où xxx peut contenir n'importe quel caractère, sauf '\'

accès

Spécifie dans quelle direction le canal est utilisé.

O_READ

(valeur 0) Ouvert pour lecture O_WRITE.

O_WRITE

(valeur 1) Ouvert pour écriture.

Vous pouvez utiliser le descripteur de fichier renvoyé avec les fonctions ReadFile, WriteFile et CloseFile. OpenPipe est utilisé dans le processus qui joue le rôle de client de canal. Avant d'appeler OpenPipe, vous devez appeler CreatePipe.

Le canal fonctionne en mode blocage. Les fonctions de lecture ou d'écriture qui suivent OpenPipe attendent que le serveur utilise la fonction inverse.

En cas de réussite, la fonction renvoie un entier non négatif, qui est le descripteur de fichier. Si la fonction échoue, elle renvoie la valeur -1.

Exemple :

Cet exemple illustre un client de canal nommé.

dim rc, h0, h1, i as integer
dim pnam0, pnam1 as string
dim stopstring as string
dim s, s1 as string
dim iswin as boolean

pnam0 = argv(1)
pnam1 = argv(2)
stopstring = "---END---"

h0 = OpenPipe(pnam0, O_READ)	  
h1 = OpenPipe(pnam1, O_WRITE)	  
if h0 < 0 or h1	< 0 then
    print "open pipe failure. h0: " + str(h0) + "  h1: " + str(h1)
    print "pnam0: " + pnam0 + "  pnam1: " + pnam1
	exit
end if 

rc = ReadFile(h0, s)
print "read command rc: " + str(rc) + " " + s
if rc then
	for i = 1 to 5
		s1 = "RSP " + s + " line " + str(i) 
		rc = WriteFile(h1, s1)
		if not(rc) then
			print "write failed: " + s1
			exit for
		end if
	next i
	if rc then
		rc = WriteFile(h1, stopstring)
		if rc then
		    print "test successful"
		end if 
	end if
end if

CloseFile(h0)
CloseFile(h1)