Заставьте stdout и stderr быть буферизованным тем же буфером

QEMU идет qemu-img программа для преобразования между форматами изображения.

qemu-img convert -f qcow2 -O raw my-qcow2.img /dev/sdb

3
25.11.2012, 17:27
1 ответ

Я не совсем уверен, в каком контексте Вы хотите сделать буфер тем же, но в программе C, автор может использовать setbuf() семейство библиотечных функций для предоставления stderr и stdout тот же буфер.

Просто usig оболочка для вызова других программ я не думаю, что можно сделать это по причинам, подразумеваемым setbuf семейство функций: реализации FILE *stderr и FILE *stdout имейте на часть экземпляра памяти (буфер). Если программа не становится записанной в особенном методе, путь, который устанавливает буфер, чтобы быть той же частью памяти для stdout и stderr, затем оболочка не может заставить программу сделать ту общую буферизацию.

2
27.01.2020, 21:28
  • 1
    Мое чтение setbuf(3) это, они не совместно использовали бы состояние буфера - только содержания - следовательно, плохие вещи будут, произошел (TM). Однако это не указано явно. –  Maciej Piechotka 25.11.2012, 18:43
  • 2
    я могу считать setbuf (3) и setvbuf (3) тот же способ, которым Вы делаете. Теперь, когда Вы поднимаете его, я предполагаю, что плохие вещи произошли бы, что эквивалент условий состязания данных происходит. Возможно, если Вы просто сделали stderr = stdout; ? –  Bruce Ediger 25.11.2012, 19:30

Теги

Похожие вопросы