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 CreatePipe crée un canal nommé pour la lecture ou l'écriture dans un rôle serveur.
Format de la fonction :
CreatePipe(pipename as String, access as Integer) as Integer
Indique le nom du canal à créer. 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 '\'.
Spécifie dans quelle direction le canal est utilisé.
(valeur 0) Ouvert pour lecture O_WRITE.
(valeur 1) Ouvert pour écriture.
La fonction renvoie un descripteur de fichier que vous pouvez utiliser avec les fonctions ReadFile, WriteFile et CloseFile.
CreatePipe est utilisé dans le processus qui joue le rôle de serveur de canal. Un client de canal utilise la fonction OpenPipe.
Le canal fonctionne en mode blocage. Les fonctions de lecture ou d'écriture qui suivent CreatePipe attendent qu'un client utilise la fonction inverse.
Remarque : La fonction n'est pas disponible sous Windows 95/98/ME.
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 suppose que l'exemple OpenPipe est stocké dans le fichier p0cl.dms.
rem example named pipe server
rem create two pipes
rem start client process
rem write command to one pipe
rem read response from second pipe
dim rc, h0, h1 as integer
dim pnam0, pnam1 as string
dim stopstring as string
dim s, cmd as string
dim iswin as boolean
if left(osstring, 3) = "Win" then
pnam0 = "\\.\pipe\p0rsp"
pnam1 = "\\.\pipe\p0cmd"
iswin = 1
else
pnam0 = "/tmp/p0rsp"
pnam1 = "/tmp/p0cmd"
iswin = 0
endif
stopstring = "---END---"
h0 = CreatePipe(pnam0, O_READ) 'read response from client
h1 = CreatePipe(pnam1, O_WRITE) 'send command to client
if h0 < 0 or h1 < 0 then
print "create pipe failure. h0: " + str(h0) + " h1: " + str(h1)
exit
end if
if iswin then
cmd = "dmscript p0cl.dms -o_dms: p0clout.txt -script " + pnam1 + " " + pnam0
rc = Exec(cmd, 0)
else
cmd = "dmscript p0cl.dms -o_dms: p0clout.txt -script " + pnam1 + " " + pnam0 + " &"
rc = Exec(cmd)
end if
print "exec rc: " + str(rc) + " cmd: " + cmd
rc = WriteFile(h1, "command")
if not(rc) then
print "write command failed"
else
while rc
rc = ReadFile(h0, s)
print "read response rc: " + str(rc) + " " + s
if s = stopstring then
rc = 0
print "test successful"
end if
wend
end if
CloseFile(h0)
CloseFile(h1)
|
Copyright © 2014 CA Technologies.
Tous droits réservés.
|
|