Re: fork(), exec() und dup()

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Martin Haller (dielheim_at_martin-haller.de)
Date: 19. Jul 2000


Hi,

> Martin Haller <dielheim_at_martin-haller.de> wrote:
>
> > ist vielleicht etwas OT aber ich frag trotzdem mal:
>
> Was soll daran off-topic sein?

ok, stimmt. Ich dachte nur, dass das hier ein Spezial-Programmierproblem
ist... wenns nicht OT ist, freut mich das natuerlich ;-)
  
[Deadlock]

>
> > read(file_pipe[0],str2,sizeof(str2));
> > printf("I got: \n%s\n from the script!\n",str2);
>
> printf() erwartet einen mit '\0' terminierten String, was aber beim
> Einlesen mit read() nicht gegeben ist.

Das hab ich gleich ausprobiert:

int chars_read = read(file_pipe[0],str2,sizeof(str2));
str2[chars_read] = 0;

Leider hilft dies nicht viel weiter: Die Ausgabe ist zwar jetzt sauber
(die restlichen Zeichen nach dem eigentlichen String fehlen), aber
irgendwas scheint mit den File-Deskiptoren noch falsch zu laufen, denn
das Perl-Scipt sieht so aus:

...
print ("STDIN: $_");
...

Das Prog schiebt dem script "Hallo Perl!" in die stdin rein, aber liest
den _gleichen_ String wieder aus der stdout raus. Er sollte aber
"STDIN: Hallo Perl!" sein, wenn die File-Deskriptoren stimmen.

Noch ne Idee ?

Danke, Martin


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET