Нет никаких хитростей, я могу думать только о том, чтобы определить, перенаправлен ли stdout в другое место, - сделать это, как в простой функции C, как показано здесь isredirected
, за исключением того, что ответственность лежит на вас. убедитесь, что сообщения хранятся в безопасности ... Другое дело, что использование хитрости procfs требует привилегий root для доступа к определенным функциям procfs ... поэтому убедитесь, что вы поставили галочку там, чтобы убедиться, что она не работает как root ...
int isredirected(void){
if (!isatty(fileno(stdin))) return 1;
return 0;
}
Надеюсь, это поможет,
С наилучшими пожеланиями, Том.