3월, 2017의 게시물 표시

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이므로 너무 크긴 하네..

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

리눅스 멀티코어를 사용하는 tar 압축/해제

WSL에 X-Window로 Terminator 설치하고 Minicom까지