perror()
使用している API と同等のものを実装しています。
perror() ISO C std は次のdoc
ように述べています。
perror() 関数は、標準エラー ストリームの方向を変更しません。
しかし、プログラム的には、それはどういう意味ですか?
現在使用しfprintf(stderr, .. )
ています。使い方は間違っていませんか?本当なら、なぜですか?私の実装にエラーがある場合(以下を参照)、私にポイントをください。
私の解釈に基づいて私のCコードをチェックしてください:
void
fooapi_perror(const char *s)
{
char *emsg;
if(s != NULL && *s != '\0')
fprintf(stderr, "%s: ", s);
emsg = fooapi_strerror(GetLastErrorCode());
fprintf(stderr, "%s\n", emsg);
free(emsg);
}