Есть ли какая-то магия, которую я могу сделать с dup2
(или fcntl
), так что я перенаправляю stdout в файл (т. Е. Все, что написано в дескрипторе 1, будет идти в файл), но если я использовал какой-то другой механизм, он пойдет на вывод терминала? Так свободно:Duplicate, но все еще использовать stdout
int original_stdout;
// some magic to save the original stdout
int fd;
open(fd, ...);
dup2(fd, 1);
write(1, ...); // goes to the file open on fd
write(original_stdout, ...); // still goes to the terminal
Ваша точка? –
Возможно, я неправильно понял, но почему бы просто не сделать функцию, которая либо записывает в stdout, либо файл в зависимости от логического параметра? –
Пункт? Я не вижу, чтобы он задумывался, я вижу, что он задает вопрос. Могу ли я перенаправить STDOUT в файл и в другое время в другое место программно. –