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
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET