1
ich ein kleines Problem mit diesem haben:execl & printf - um
{
printf ("abc");
execl("./prog","prog",NULL);
}
Alle funktioniert gut, aber warum execl
laufen kurz vor printf
? Könnte mir jemand helfen?
Versuchen 'printf ("abc"); fflush (stdout); ' – Marian
OT: Es sollte' execl (..., (char *) NULL); 'sein. – alk
Zeilenpufferung: Die Ausgabe von 'printf()' wird nicht erzwungen, es sei denn, Sie aktivieren No-Buffering (fügen Sie einen Newline hinzu und es würde normalerweise erscheinen; pipe die Ausgabe des Programms und sogar ein Newline wird nicht helfen, aber ' fflush() 'wird). Die Funktionen in der Funktionsfamilie ['execl()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/execl.html) "fugen" die Standard-E/A-Puffer des aufrufenden Programms nicht. –