Вы должны использовать cerr для вывода вашего справочного сообщения в STDERR, которое не включено в ваше перенаправление на outfile.o.
Дано ./program < infile.in > outfile.o
:
cout << "This writes to STDOUT, and gets redirected to outfile.";
cerr << "This doesn't get redirected, and displays on screen.";
Если позже вы захотите перенаправить STDOUT и STDERR, вы можете сделать
./program < infile.in &> outfile.o
Если вы хотите перенаправить только STDERR, но разрешить отображение STDOUT, используйте
./program < infile.in 2> outfile.o
Перенаправление Bash является более сложным, чем думает большинство людей, и часто все, кроме самой простой формы (">"), упускается из виду.