lsof를 아시나요..?

Prentice의 이미지

얼마 전에 lsof를 쓰다가 한글 표시가 제대로 안되는 것을 깨달았습니다. 개발자와 서로 메일을 주고 받으면서 버그 설명을 해주고, 열심히 테스트 한 내용을 보내주고 해서 버그를 잡도록 설득하는 데 성공했습니다. 테스트 버젼을 받아서 되는지 안되는지 피드백 해주고 해서 UTF-8 한글이 지원되는 버젼의 패치를 받기에 이르렀습니다. :D

구글에서 multibyte isprint로 검색했더니 나온 다음 글이 큰 도움이 되었습니다. :)

http://www.kr.freebsd.org/ml/hangul-patch/2000/11/msg00060.shtml

테스트 버젼을 원하시면 lsof ftp 홈이나 미러의 NEW 디렉터리에서 lsof 4.73A.linux를 받으신 후 ./Configure -n linux && make 해주시면 lsof 바이너리가 생깁니다. 혹시 멀티바이트 지원이 제대로 안된다면 파일의 출처인 미러가 아직 업데이트되지 않았다는 이야기 입니다. 다음과 같이 misc.c를 패치해주시면 됩니다. : >

--- misc.old      2004-07-17 01:32:45.000000000 +0900
+++ misc.c     2004-07-17 01:32:40.000000000 +0900
@@ -1211,9 +1211,7 @@
                    lnc = mblen(sp, sl);
                    if (lnc > 1) {
                        if ((mbtowc(&w, sp, sl) == lnc) && iswprint(w)) {
-                           for (lnt = 0; lnt < lnc; lnt++) {
-                               putc((int)*(sp + lnt), fs);
-                           }
+                           putwc(w, fs);
                        } else {
                            for (lnt = 0; lnt < lnc; lnt++) {
                                fputs(safepup((unsigned int)*(sp + lnt),

Copyright 1994 Purdue Research Foundation, West Lafayette, Indiana
47907. All rights reserved.

Written by Victor A. Abell

sjpark의 이미지

write도 한글이 안되었었는데..

직접 패치해서 썼는데 요즘은 잘 되나요?

Prentice의 이미지

데비안의 bsdmainutils 6.0.14 안에 포함된 write로 UTF-8 환경에서 방금 확인해본 결과 잘 됩니다. : )