Consider the following 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;
}
When I compile and run this as normal i get the expected output:
$ ./test
Test 1
Test 2
Test 3
Test 4
But when I redirect the output I get nothing from the python code:
$ ./test | cat
Test 1
Test 2
Test 4
What is happening? And more importantly how do I get my python output written to stdout like expected?
'import sys; sys.stdout.flush()'
to the Python script, you get the redirected output, but before everything else. – Brave