Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : popen - pclose - ? wiekill?



peschmae
28-05-2002, 14:33
Mein Problem ist folgendes:

ich öffne mit popen() eine Pipe zu lame:

char str_lame[255];
sprintf(str_lame, "%s %d %s \"%s\"", "lame -x -r -b", bitrate, "-", FileName);
FILE *dz;
dz = popen(cmdline, "w")

schreibe da ein bisschen rein:
fwrite(audio_buffer, 1, readBytes, dz);

und schliesse sie mit pclose() wieder:
pclose(dz);

Soweit, so gut..., aber nun kommt der Haken:

Der Lame - Encoder wurde leider nicht beendet, d.h. er wartet weiter fröhlich
auf Sound in seinem STDIN.

Die Suche nach einer EOF - Funktion förderte nur eine Funktion zutage, die
anzeigt, wenn beim Lesen ein EOF gelesen wird ...

Ein Versuch EOF zu schreiben:
putc(EOF, dz);
oder ähnlich führte auch nicht zu Erfolg.

Ein kill oder so ist leider auch nicht möglich, da popen keine PID liefert.

Wie bringe ich lame dazu, sich zu beenden?

MFG Peschmä