我正在实现perror()
等同于我正在使用的API。实现perror() - 问题
的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);
}
有趣的是,你的链接是POSIX标准,而不是ISO C标准。我的ISO/IEC 9899:1999副本与您链接的副本几乎完全相同 - 除了您要查询的行外! – cdarke 2012-07-14 15:38:53
您可能希望将您的问题的标题从安静的一般措辞'... perror() - issue'修改为更具体的问题,比如'... perror():输出流方向“,因为它更多地涉及后者关于'perror()'实现本身。 – alk 2012-07-15 10:21:32