Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Pipe wird nach Lesevorgang geschlossen

  Alt 25. Sep 2015, 12:28
Hallo,

Ist folgendes Verhalten normal?

Ich erstelle eine Pipe:
pipe := CreateNamedPipe('\\.\pipe\mypipe', PIPE_ACCESS_INBOUND, PIPE_TYPE_MESSAGE or PIPE_WAIT, 2, 4096*1024, 4096*1024, 0, nil);
Ein 2. Prozess öffnet die Pipe per CreateFile, schreibt Daten herein und schließt das Filehandle.

Danach lese ich den Inhalt aus:
Delphi-Quellcode:
var Buff: Array of Byte;
    br: Cardinal;
begin
  SetLength(Buff, 4096*1024);
  ReadFile(pipe, Buff[0], 4096*1024, br, nil);
end;
Das funktioniert soweit, allerdings ist die Pipe danach geschlossen. Ein anderer Prozess kann sie dann nicht mehr öffnen.
Warum ist das so? Ist das normal? Mache ich irgendwas komisch/falsch?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat