Вероятно, это долгожданный ответ, что любой может ответить на этот вопрос, не увидев весь исходный код, библиотеки и т. Д., Но я попробую.
У меня есть программа X
, написанная на C ++ с использованием boost-1,41.Если X
выводит с std::cout
, то запуск X
из другой программы с использованием fp=popen("X", "r")
позволяет выводить X
через fgets(buff, 1024, fp)
.
Теперь, если я изменю X
чтобы использовать printf()
вместо std::cout
, вывод X
больше не виден.Тем не менее, выполнение X
из bash дает ожидаемый результат.
Что может объяснить эту разницу ?!Я подозреваю, что здесь происходит повышение, но я не знаю много о повышении.
Примечание: Я счастлив придерживаться std::cout
, и моя проблема решена.Но я пытаюсь понять, в чем проблема с printf()
.