我正在實現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