stderrリダイレクト

1167 ワード

alljoynをテストするときに内部ログを開き、出力が多すぎてファイルにリダイレクトしたい場合は、次のコマンドを使用します.
./chat -s aaa >1.txt

ファイルに出力するのではなく、画面に印刷するなんて.
 
alljoynがログを書くコードを見て、発見します
void QCC_UseOSLogging(bool useOSLog)

{

    void* context = stderr;

    QCC_DbgMsgCallback cb = QCC_GetOSLogger(useOSLog);

    if (!cb) {

        cb = WriteMsg;

    }

    

    QCC_RegisterOutputCallback(cb, context);

}

元のログはstdoutではなくstderrに出力され、直接'./chat -s aaa >1.txt’コマンドはstdoutにリダイレクトするだけで、もちろん効果はありません.
stderrにリダイレクトするには、次のコマンドを使用します.
./chat -s zccc &> 1.txt