회사일이다. 우리팀이 사람이 좋아서 그런것인지, 아니면 개발자가 아니면 쉽게 접하지 못하는 Linux/Solaris 등을 다루어서 그런것인지, 뭐든 우리팀으로 협조요청식으로 들어온다. 정말 장비가 없다는 이유로 간단한 테스트까지 하는 것이라면, 화날일이지. 평소에 친하게 지내던 제품관리자(?)와 그렇게 전화를 끊고 나니, 여간 마음이 불편한것이 아니다. 그래도 어쩌랴 의사는 표시해야하는 것이고, 그것이 어떤 이유에서건 간에 쌓아둬서는 안되는 것이며, 표출해야하지. 그래도 마음이 불편하다. 왜냐면, 그렇게 화낼일은 아니었기 때문이다. 어쩌지?
[CODE]char ch; while( (ch = fgetc( f )) != EOF ) { printf("%c", ch ); }[/CODE] 언뜻보기에는 맞는 것 같이 보인다. 하지만, 여기에는 isprint 못지 않은 두려운 버그가 숨어 있다. fgetc 의 원형은 다음과 같다. [CODE]int fgetc( FILE * );[/CODE] fgetc의 return 값이 int 란다. 그리고, 문자하나를 되돌리는 함수라니.. 각설하고 위 코드는 다음과 같아야한다. [CODE]int ch; while( (ch = fgetc( f )) != EOF ) { printf("%c", (char) ch ); }[/CODE] fgetc의 설명을 보면, 파일의 끝이나 오류를 만났을 때 EOF를 되돌린단다. unsign..
char ch = 'X'; 위와 같이 되어 있을 때, 다음과 같이 사용하는 것이 옳은 것이냐하는 것인데, if( isprint( ch ) ) { blah; } 경고감이다. 왜냐하면, isprint의 원형은 [CODE]int isprint (int c);[/CODE] 이기 때문이며, 여기에는 isprint에 넣는 인자의 철학과 우리가 흔히 사용하는 문자형 변수의 차이에서 오는 괴리감이 있는 것이다. int 는 char가 표현할 수 있는 것보다. 일반적으로 더 많은 범위를 받을 수 있는데 (sizeof( char ) == sizeof( int ) 인 구조를 제외하면 항상 그렇지 않는가?) 그러면서도 signed 형이라는 것이다. 그런데, char 는 명시적으로 signed char, unsigned char..
김준동이... 갑자기 오늘 그대가 그립네그려... 이유야 있겠지만, 그냥 보고 싶구랴...
정재훈씨의 tattertools를 설치하고, 몇개의 스킨을 설치하여 이것저것 써보다 CUFMC.COM에서 만든 간단한 것으로 만족할 만한 블로그를 열었다. 다들 시작한 웹로깅(블로깅)이지만, 내가 이제와서 시작하게 된 계기는 그간 사용해온 위키의 싫증과 모종의 정제된 온라인 출판물을 남기고 싶어서이다. 일단, 이렇게 마음이라도 먹고 시작하는 것이 유행에 민감한 양 시작하는 것보다는 나으리라 생각하여 열고는 있지만 계속 잘 될지는 두고 볼일이다. 그간 써온 UseModWiki 기반의 gypark 수정버전도 나름, 위키가 활성화되고 난 다음 편승한 상황이었는데, 그이후로도 글쓰기가 반짝하고 지난 2년간 뜸했던것으로보아 이후 2년도 뻔해 보이긴 하다마는 알량해도 어쩌겠냐 이것이지. 웹상의 글은 짧게 써야 읽는..
* GNU GCC versus Sun's Compiler in the SPARC Platform ::http://www.osnews.com/story.php?news_id=5830&page=3 * Are 64-bit Binaries Really Slower than 32-bit Binaries? ::http://www.osnews.com/story.php?news_id=5768 * Solaris 64-bit Developer's Guide ::http://docs.sun.com/app/docs/doc/806-0477 * Compiler Usage Guidelines for 64-Bit Operating Systems on AMD64 Platforms ::http://www.amd.com/us-en/ass..
함수의 프로토타입을 꼼꼼히 분석하라 : 함수의 프로토타입에는 그 함수가 뭘하는 것인지에 대한 정보의 90%가 들어 있다. const 형식이 어떤 것인지 모두 이해하고 있어라 : 함수 인자, 변수 선언, 멤버 함수 맨 뒤. static 형식이 어떤 것인지 모두 이해하고 있어라 : 변수 선언, 함수 선언, 멤버 함수 오브젝트 파일안에 뭐가 들어 있는지 알고 있어야한다. : nm, objdump, readelf, dumpbin.exe, depends.exe 등의 유틸리티가 도움이 된다. 소스를 코딩하고나면 오브젝트 코드가 어떻게 생기는지 알고 있어야한다. 스택에 쌓이는 순서를 상상하라 커널레벨과 사용자레벨의 차이와 그 전환은 어떻게 일어나는지 알고 있어야한다. 디버깅 툴(브레이크 포인트, 변수 내용 보기, 시..
- Total
- Today
- Yesterday
- VIM
- macosx
- 오픈소스
- 덴드롱
- 벤자민
- SVN
- TCP/IP
- Linux
- ssh
- 구근
- 대화
- BlogAPI
- tattertools
- 디버깅
- Subversion
- nodejs
- OpenID
- MySQL
- 퀴즈
- url
- SSO
- JavaScript
- 클레로덴드럼
- perl
- 수선화
- 킹벤자민
- 커피
- Tattertools plugin
- writely
- 식물
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |