printf 와 wprintf
아래 내용은 결국 실패!
계속 확인해보기 위해 삭제는 안함.
wprintf는 찾아보면 아시겠지만 wide string의 printf 버전이다.
wprintf : formatted wide-character output conversion (Man 페이지)
printf와 wprintf는 동시에 사용할 수 없다.
Application을 시작시에 가장 먼저 호출되는 녀석이 stdout을 잡아서 그렇다.
문제는 여기서 발생한다.
wprintf를 사용하는 debug wrapper가 있는데
printf가 먼저 stdout을 잡아버린 상황
난 이 debug wrapper를 건드리지 않고 출력하고 싶었다.
거기다가 file, line, func까지 같이 출력해주면 더욱 좋겠지
#undef WDEBUG
#define WDEBUG(t, ...) {\
wchar_t wcs[BUFSIZ]; \
swprintf(wcs, BUFSIZ, __VA_ARGS__); \
printf("%s %d %s : %S\n", __FILE__, __LINE__, __func__, wcs); \
}\
WDEBUG(WARN, L"TEST %02d", i);
더 좋은 방법은 있겠지만 디버깅용이므로 여기서 만족
BUFSIZ가 보통 40960이므로 너무 크긴 하네..
댓글
댓글 쓰기