GDB 에서 한글 출력이 안될때 .gdbinit 이라고 GDB가 실행될때 같이 로딩되는 파일이 있다. 이파일안애 아래와 같은 스크립트 함수를 만들어주고 문자열을 출력할때 p 대신 pp를 사용하면 한글 문자열을 화면에 출력할수 있다. define pp # echo ' set $i = 0 while (1 == 1) set $c = (char)(($arg0)[$i++]) if ($c == '\0') loop_break end printf "%c", $c en.. C언어 2015.09.03
bit masking ( about xor ) bit masking을 할 때 보통의 경우는 아래와 같이 처리한다. <방법론 1> 비트 on시킬 때 mask |= bit; 비트 off 시킬 때 mask &= ~bit <방법론2> mask ^= bit; ^ 라는 xor와 위 방법이 약간은 다른데 예를 들어서 설명하면 mask = 0000 0001 이고 설정할 값(A)이 0000 1110 이면 설정후에 0000 1111이 된다. 이 상태.. C언어 2015.04.21
clock_gettime c언에서 경과시간을 잴때 getimeofday를 사용했는데 이 함수보다는 clock_gettime을 권장한다고 한다. //선언 struct timespec ts1, ts2, ets; // start clock_gettime( CLOCK_REALTIME , &ts1 ); // end clock_gettime( CLOCK_REALTIME , &ts2 ); // 경과시간 void elapsed_time( struct timespec start, struct timespec end, struct timespec *etime ){ if ((end.tv_.. C언어 2015.04.16
c11 추가된 내용 1999년에 c99가 발표되고 12년이 지난 2011년에 새로운 스펙의 2011의 c11이 발표됐다. _Generic 뿐만 아니라 내가 주목해서 살펴본것은 multi core 시대에 맞춴 threading 관련 기능 지원이다. 자세한 내용은 아래 URL을 참조 http://ko.wikipedia.org/wiki/C11 http://www.drdobbs.com/cpp/c-finally-gets-a-new-standard/23280044.. C언어 2015.03.20
tokyocabinet threading error tokyocabinet을 사용중인데 잘 되다가 가끔 threading error이라는 메세지를 리턴한다. 읽을려는 파일이 read only라서 thread가 충돌할 일이 없다. 파일을 직접 열어서 확인하니 파일을 읽기 전용으로 열었는지에 대한 확인이 없고 절대 패스에 대해 lock을 거는 것 같다. tcpathlock() 이부분에서 threading .. C언어 2015.03.18
thread deadlock debugging http://en.wikibooks.org/wiki/Linux_Applications_Debugging_Techniques/Deadlocks 쓰레드 디버깅 방법( linux) 모든 thread에 대해서 backtrace (gdb) thread apply all bt 특정 thread 선택 (gdb) thread 4 스택위치 지정 (gdb) frame 2 레지스터 정보 확인 (gdb) info reg ... r8 0x6015a0 6296992 뮤텍스 정보 확인 (gdb) p *(pthread_mutex_t*)0x6015a0 pthrea.. C언어 2015.03.06
pthread automic operation thread programming에서는 int 값 하나는 변경하는데도 신경을 써야한다. int a; a++; <= a 라는 변수를 thread가 서로 참조하는 변수라면 이것도 lock을 걸어줘야 한다. 이건 것 까지 하면서 thread 프로그래밍을 해야 하나 싶을 정도로 귀찮고 짜증나는 일이라 쉽게 풀수 있는 방법을 찾았더니 아래와.. C언어 2015.03.04
pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.12.so) http://stackoverflow.com/questions/15659832/does-openmp-allocate-memory-and-free-all-after 아래와 같이 pthread_create에 대해 메모리 릭 에러를 확인할수 있는데(valgrind) 컴파일러에 따라 나타나는 현상이라고 한다 gcc(4.4.6)에서는 아래와 같이 메세지가 나오지만 icc( intel compiler )로 컴파일 하면 정상적으로 나온다.. C언어 2015.03.03
구조체 선언과 동시에 초기값 설정 구조체를 선언할때 typedef를 사용해서 선언하는데 선언과 동시에 초기값을 주는 방식 ( 아래 ) 에서는 typedef를 사용하지 않아야 사용이 가능하다. struct event_handler{ socket_state_t state; handler_f handler; } event_handler[] = { { SOCKET_EXCEPT, default_handler }, { SOCKET_INIT, default_handler }, { SOCKET_ACCEPT, accept_socket }.. C언어 2015.02.13
아파치 모듈 프로그래밍 시작 apxs -n gc_suggest -g 위 명령을 실행하면 아파치 모듈 프로그램을 개발하기 위한 skeleton이 생성된다. -rw-r--r-- 1 hanadmin hanmail 1022 2015-02-01 00:16 Makefile -rw-r--r-- 1 hanadmin hanmail 2156 2015-02-01 00:16 mod_gc_suggest.c -rw-r--r-- 1 hanadmin hanmail 172 2015-02-01 00:16 modules.mk 참고 : http://httpd.apache.org/docs/2.4/programs/a.. C언어 2015.02.01