Перенаправить вывод на уровень libc - PullRequest
0 голосов
/ 05 марта 2012

Я хочу перенаправить вывод таким образом, чтобы он работал для вывода, генерируемого модулями C, которые печатают непосредственно в стандартный вывод.Стандартный подход здесь не работает:

sys.stdout = open('out.txt', 'w')

, потому что он не работает на уровне libc.

Функция freopen () может сделать это, но как я могу получить к этому доступ?из питона?

1 Ответ

2 голосов
/ 05 марта 2012

Откройте файл с помощью os.open и соответствующих опций (os.O_WRONLY и т. Д.), А затем выполните os.dup2(<new fd>, 1).

...