TRIE에 대하여 내가 지금 사용하고 있는 트라이는 하니가모님이 만드신것이 처음 뿌리이다. 그분에게서 배워와서 약간이 수정(객체 비스므리)을 거쳐 사용하고 있는데 공간효율을 위해서 노드간의 포인터를 연결하는 방식을 사용하다보니 본이 아니게 링크드 리스트와 같은 구조가 중간에 생성이 된다. 검색 중간.. C언어 2007.03.19
valgrind (callgrind) 일반적으로 리눅스에서 작업중 튜닝이 필요할때 프로파일링 작업을 한다. 가장 일반적인 방법이 컴파일 옵션에 -pg를 주고 pgrof로 프로파일링된 내용을 보는것인데 이것과는 조금 다른 프로파일링 기법이 있어서 소개한다. 이미 많은 개발자들이 사용하고 있는 valgrind의 서브 모듈인 callgrind가 바로 그.. C언어 2007.03.09
유니코드 (utf-8)관련 자료 수집 유니코드 코드 범위 : http://www.cs.tut.fi/~jkorpela/ucs.html8 유니코드 다양한 범위의 글자 : http://www.madore.org/~david/misc/unitest/ C언어 2007.03.08
utf8를 유니코드(uni)로 변환 (euc-kr <-> utf-8) | utf8로 된 코드를 UCS-2로 변환하는 과정 입력 어절이 '가'(utf-8)일 경우 코드값은 0xEA 0xB0 0x80 이다. 첫번째 바이트의 첫번째 비트가 0xE0 이기 때문에 3byte로 표현된 캐릭터임을 알수 있다. 첫번째 바이트 처리 0xEA & 0xE0 == 0xE0 11101010 << 4 10100000 -------- 10100000 => 0xA 두번째 바이트 처리 10110000 00111100 & ----.. C언어 2007.02.15
유니코드(uni) 를 utf8로 변환 (euc-kr <-> utf-8) 우리나라의 많은 DB와 웹페이지들이 아직까지도 여전히euc.kr로 되어 있는곳을 볼수 있다. 그런데 나처럼 검색쪽 일을 하다보면 자연스럽게 euc-kr에서 utf-8로 변환해야할 필요성이 발생하게 된다. 다국어 처리와 같은 문제도 있겠지만 한국어 처림내에서도 euc-kr은 한계가 있기 때문에 euc.kr에서 utf-8로 변.. C언어 2006.12.07
보이어 무어(boyer moore) 알고리즘 string = 'here is a simple example' pattern = 'example' BM의 특징은 패턴의 마지막 글자부터 비교를 한다는 것이다. 다른 한가지는 initialize를 한다는것이다. 여기서 말하는 초기화란 다음과 같다. 우선 영어의 경우 1바이트로 표현하기 때문에 1바이트가 가질수 있는 최대 크기는 256이다. 따라서 256개의 interger 배열.. C언어 2006.09.23
url decoding 쿼리 디코딩용 #include "curl/curl.h" int main() { int size; char *ret; char buffer[1024]; while(fgets(buffer,1024,stdin) != NULL) { size = strlen(buffer); ret = curl_unescape(buffer,size); printf("%s\n",ret); } } http://curl.netmirror.org/libcurl/c/ C언어 2006.09.19
Killed (+++ Killed by SIGKILL +++ ) $ ./test Killed $ strace ./test execve("./test", ["./test"], [/* 28 vars */]) = 0 +++ killed by SIGKILL +++ 어제까지 잘 동작하던 프로그램이 실행만 시키면 바로 죽어 버린다. 물론 gdb로 먹지 않고 strace로 찍어보니 시스템에서 kill signal이 날라오는것 같다. 원인은 간단했다. test.c에서 include 하는 헤더파일에 #define MAX 100000000 st.. C언어 2006.08.25
[스크랩] 정보검색관련 용어집 #1 내용출처 : http://kordic.britannica.co.kr/ '말뭉치' (corpus) 언어를 연구하는 각 분야에서 필요로 하는 연구 재료로서 언어의 본질적인 모습을 총체적으로 드러내 보여줄 수 있는 자료의 집합을 뜻합니다. 이런 조건만 만족할 수 있으면 작게는 시집 한 권이나 소설 한 편으로부터 1억 어절 이상의 말 또는... C언어 2006.08.17
valgrind 간단한 사용법 $ valgrind --leak-resolution=high --trace-malloc=yes --leak-check=yes --show-reachable=yes -v [프로그램 전체 경로] $ valgrind --leak-resolution=high --leak-check=yes --show-reachable=yes -v [프로그램 전체 경로] $ valgrind --db-attach=yes --leak-resolution=high --leak-check=yes --show-reachable=yes -v ./test_hanl 실행이 끝난 다음에 malloc/free 된 메.. C언어 2006.06.23