Gültig für UNIX und Windows.
Hinweis: Diese Funktion ist neu in CA ITCM und kann daher nicht mit älteren Versionen des Skript-Interpreters verwendet werden.
Die Funktion "CreatePipe" erstellt eine Named Pipe zum Lesen oder Schreiben in der Rolle eines Servers.
Diese Dateiinhaltsfunktion hat das folgende Format:
CreatePipe(pipename as String, access as Integer) as Integer
Gibt den Namen der zu erstellenden Pipe an. Unter UNIX ist "pipename" ein gültiger Pfadname.
Unter Windows ist folgendes Format erforderlich:
\\.\pipe\xxx
wobei xxx aus beliebigen Zeichen mit Ausnahme von '\' bestehen kann.
Gibt an, in welcher Richtung die Pipe verwendet wird.
(Wert 0) Zum Lesen geöffnet.
(Wert 1) Zum Schreiben geöffnet.
Die Funktion gibt ein Datei-Handle zurück, das Sie mit den Funktionen "ReadFile", "WriteFile" und "CloseFile" verwenden können.
"CreatePipe" wird in einem Prozess verwendet, der als Pipe-Server agiert. Ein Pipe-Client verwendet die Funktion "OpenPipe".
Die Pipe arbeitet im Blockiermodus. Die Lese- oder Schreibfunktionen, die auf "CreatePipe" folgen, warten bis von einem Client die jeweils umgekehrte Funktion verwendet wurde.
Hinweis: Die Funktion steht unter Windows 95/98/ME nicht zur Verfügung.
Bei erfolgreichem Abschluss gibt die Funktion eine nicht negative Ganzzahl zurück, die das Datei-Handle darstellt. Bei Fehlschlagen der Funktion wird -1 zurückgegeben.
Beispiel: Funktion "CreatePipe"
In diesem Beispiel wird davon ausgegangen, dass das Beispiel für "OpenPipe" unter dem Namen "p0cl.dms" gespeichert wurde.
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 © 2013 CA.
Alle Rechte vorbehalten.
|
|