我正在实现与perror()
我正在使用的 API 等效的功能。
perror() ISO C stddoc
说:
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);
}