Рассмотрим следующий MWE:
#include <Python.h>
#include <stdio.h>
int main(void) {
printf("Test 1\n");
Py_Initialize();
printf("Test 2\n");
PyRun_SimpleString("print('Test 3')");
printf("Test 4\n");
return 0;
}
Когда я компилирую и запускаю это как обычно, я получаю ожидаемый вывод:
$ ./test
Test 1
Test 2
Test 3
Test 4
Но когда я перенаправляю вывод, я ничего не получаю от кода python:
$ ./test | cat
Test 1
Test 2
Test 4
Что происходит? И что еще более важно, как я могу получить вывод python, написанный на stdout, как ожидалось?