Vorheriges Thema: OpenFile - Öffnen einer DateiNächstes Thema: ReadFile - Lesen von Daten aus einer Datei


OpenPipe - Öffnen einer Pipe

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 "OpenPipe" öffnet eine Named Pipe zum Lesen oder Schreiben einer Client-Rolle.

Diese Dateiinhaltsfunktion hat das folgende Format:

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

Gibt den Namen der zu öffnenden Pipe an.

Unter UNIX ist "pipename" ein gültiger Pfadname.

Unter Windows wird das Format \\.\pipe\xxx verlangt, wobei xxx aus beliebigen Zeichen mit Ausnahme von "\" bestehen kann.

access

Gibt an, in welcher Richtung die Pipe verwendet wird.

O_READ

(Wert 0) Zum Lesen geöffnet.

O_WRITE

(Wert 1) Zum Schreiben geöffnet.

Sie können das zurückgegebene Datei-Handle mit den Funktionen "ReadFile", "WriteFile" und "CloseFile" verwenden. "OpenPipe" wird in einem Prozess verwendet, der als Pipe-Client agiert. Bevor Sie "OpenPipe" aufrufen, müssen Sie "CreatePipe" ausführen.

Die Pipe arbeitet im Blockiermodus. Die Lese- oder Schreibfunktionen, die auf "OpenPipe" folgen, warten solange, bis vom Server die jeweils umgekehrte Funktion verwendet wurde.

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 "OpenPipe"

Dieses Beispiel zeigt die Arbeitsweise eines Named Pipe-Clients. Dabei wird der als erstes Argument angegebene Befehl von der Pipe gelesen und die als zweites Argument angegebene Antwort in die Pipe geschrieben.

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)