저는 현재 사용하고있는 API와 동일한 perror()
을 구현하고 있습니다.perror() 구현 - 문제
perror는()의 표준 ISO C doc
말한다 :
perror는() 함수는 표준 오차 스트림의 방향을 변경하지 않는다.
프로그래밍 방식으로는 무엇을 의미합니까?
현재 fprintf(stderr, ..)
을 사용하고 있습니다. 실수로 그것을 사용합니까? 사실이라면 왜? 내 구현에 오류가있는 경우 (아래 참조), 제게는 점수를주십시오. 내 해석을 기반으로
체크 아웃 내 C 코드 :
각 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);
}
재미있는 점은 ISO C 표준이 아닌 POSIX 표준에 대한 것입니다. ISO/IEC 9899 : 1999의 사본은 당신이 쿼리 한 라인을 제외하고는 링크 된 것과 거의 동일합니다! – cdarke
질문의 제목을'... perror() - issue'라는 조용한 일반 표현에서'... perror() : output stream orientation'과 같이 좀 더 구체적으로 수정하고 싶을 것입니다. 후자는'perror()'구현 그 자체에 관한 것이다. – alk