Название: Перенаправление стандартного вывода в консольном приложении Отправлено: titan83 от Июль 28, 2015, 14:05 Здравствуйте.
Система - линукс. Такая странная ситуация - пытаюсь сохранить вывод консольного приложения в файл: ./prog > prog.log. Вывод на консоль делаю printf(). В результате файл создается, но он всегда пустой. При этом для любых других программ все работает как и ожидается - вывод сохраняется. В файле проекта есть строка CONFIG += console. Почему может быть такое поведение? Спасибо. Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: Fregloin от Июль 28, 2015, 16:19 нужно делать flush().
Но для того что бы он работал, получите дескрипторы файлов-потоков ввода/вывода (на сколько я помню у них стандартные номера 1,2,3 для ввода, вывода и ошибок), далее fprintf(stdout,"..."); fflush(stdout); или как то так, писал по памяти. после этого данные будут записаны в файл. Так как по умолчанию включена буферизация и нужно дергать flush вручную. Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: Пантер от Июль 28, 2015, 16:21 А зачем вообще printf, если ты пишешь на плюсах? Есть же std::cout, где std::endl сбрасывает буфер.
Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: Bepec от Июль 28, 2015, 16:46 Не всегда сбрасывает, во всяком случае на старых окошках. Попадал в ситуацию, когда сбрасывает только flush.
Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: Old от Июль 28, 2015, 16:54 Не всегда сбрасывает, во всяком случае на старых окошках. Попадал в ситуацию, когда сбрасывает только flush. Ну это вы передавайте привет компилятору, который лучше всех поддерживает стандарт. :)Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: Bepec от Июль 28, 2015, 21:13 Old - не будем спорить. В тот раз я цитатами доказал, что поведение компилятора соответствует стандарту. Опять рыться изза фигни? увольте :D
PS подкалывать можно, но не в каждой же теме :D Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: Old от Июль 28, 2015, 21:21 В тот раз я цитатами доказал, что поведение компилятора соответствует стандарту. :)PS подкалывать можно, но не в каждой же теме :D А я вас не подкалываю. Это еще одно подтверждение того, что самый строгий компилятор кладет на стандарты.Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: titan83 от Июль 29, 2015, 10:28 Всем спасибо.
Тоже вечером подумалось на счет флаша. А пишу не я и не на плюсах - человек еще не освоил - хочет писать как умеет - на си. Название: Re: Перенаправление стандартного вывода в консольном приложении Отправлено: qate от Июль 31, 2015, 12:53 если писать в stderr, то файл будет пуст
|