1
У меня есть небольшая проблема с этим:execl & Printf - заказ
{
printf ("abc");
execl("./prog","prog",NULL);
}
Все работает отлично, но почему execl
просто запустить, прежде чем printf
? Может кто-нибудь мне помочь?
Попробуйте 'Е ("а"); fflush (stdout); ' – Marian
OT: Это должно быть' execl (..., (char *) NULL); '. – alk
Буферизация строк: вывод из 'printf()' не вытесняется, если вы не включили no-buffering (добавьте новую строку, и она обычно появится; pipe вывод программы и даже новая строка не помогут, fflush() 'будет). Функции в семействе функций '' execl() '] (http://pubs.opengroup.org/onlinepubs/96999197/functions/execl.html) делают _not_ зачистки стандартных буферов ввода-вывода вызывающей программы. –