2

私はの一般的な使用法を知っていperror()ます。

しかし今は、その結果をコンソールではなくファイルにエクスポートしたいと思います。ちなみに、私はそれをandroidエミュレーターのadbシェルの下で実行します。

4

3 に答える 3

8

strerror()代わりに使用してください:

fprintf(logfile, "Something went wrong: %s\n", strerror(errno));

stderrまたは、を使用してファイルにリダイレクトしてから、を使用して続行することもできdup2()ますperror()

編集:私が最初にこれに答えたのは早く、私の脳はすべてのシリンダーで発火していませんでした。すべてを行うことができるように、sprintf()後に続くを使用する必要はありません(@maverikに感謝します)。fputs()fprintf()

于 2012-05-30T06:53:19.183 に答える
2

全体stderrをそのファイルにリダイレクトできます。これを行うUnixの方法は次のとおりです。

int fd = open("logfile", O_WRONLY); // 'fd' stands for 'file descriptor
close(2); // close stderr
dup(fd); // duplicate fd so that it's copy will be the lowest available value -- 2
于 2012-05-30T07:05:13.963 に答える
1

stderrを選択したファイルに転送できると思います。例:$。/ program 2> errlog

于 2012-05-30T06:56:44.903 に答える