목록프로그래밍 (31)
일상에서 멍때리기
ctags와 함께 vim유저에게 많은 사랑을 받고 있는 툴 cscope입니다. 저는 여지껏 cscope -R 을 사용해서 아주 일부적인 기능만을 사용하고 있었습니다. 그러던중 '리눅스 유닉스 필수유틸리티' 책을 읽다 내용이 있어 포스팅을 합니다. cscope가 없다면 cscope를 설치 해주시기 바랍니다. 우선 cscope.out파일을 만들기 위한 간단한 스크립트입니다 . #!/bin/bash rm -rf cscope.out cscope.files find . \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' \) -print > cscope.files cscope -i cscope.fil..
sqlite3를 사용하면서 string을 binding할 때 sqlite3_bind_text, sqlite3_bind_text16을 사용한다. 이 때, 사용되는 마지막 파라미터의 차이에 대하여 알아본다. binding을 할 때, 구글링한데로 복사 붙여넣기해서 쓰다보면 두 파라미터의 차이를 모르고 마구 쓰다가 알수없는 오류에 직면하게 될 수 도 있다. SQLITE_STATIC flag에서도 알 수 있듯이 static으로 잡혀 있는(free될 일이 없는) 변수를 사용할 때 사용된다. SQLITE_TRANSIENT 위와 다르게 free되거나 변경될수 있는 변수를 이용할 때 사용된다. 와 같이 조금 다르다. 1. SQLITE_STATIC에서는 말그대로 free되지 않거나 변경되지 않는 static변수로 잡힌 것..
우분투에서 사용할 만한 그림판을 찾다가 발견한 우분투용 그림판 kolourpaint! 단순함과 간단한 그림편집이 윈도우의 그림판 수준이지만 쓸만하다. apt-get repository에서 kolourpaint를 검색하면 메이저버전이 붙은 해당 페키지를 찾을 수 있다.(필자는 kolourpaint4) 스크린샷
우분투에서 sun-java-jdk가 검색이 안되고 sun-javadb와 open-jdk만 검색이 된다. 이유는 apt-get repository가 없기 때문에 이런 문제가 발생하게 된다. 해당 방법에 대한 대처방법을 알아보자 sudo add-apt-repository "deb http://archive.canonical.com/ubuntu maverick partner"sudo apt-get updatesudo apt-get install sun-java6-jdk와 같은 일련의 과정을 거친다. 1번의 경우 apt-get repository에 해당 주소를 추가해주는 역할을 한다. 2번의 경우 현재 있는 apt-get의 목록을 update한다. 3번은 해당 package를 설치한다. 추가적으로 기존에 ope..
필요해서 구현한 source #include#include#include char* rtrim(char*);char* ltrim(char*);char* trim(char*); int main(void){ char test [] = " aaaa "; char * test2; test2 = ltrim(test); printf("test : '%s', test2 : '%s'\n", test, test2); return 0;} char* rtrim(char* _str){ char t[1024]; char* end; strcpy(t, _str); end = t + strlen(t) - 1; while(end != _str && isspace(*end)) --end; *(end + 1) = '\0'; _str = ..
description The "Tag List" plugin is a source code browser plugin for Vim and provides an overview of the structure of source code files and allows you to efficiently browse through source code files for different programming languages. download http://vim.sourceforge.net/scripts/script.php?script_id=273 위 사이트에서 최신버전을 다운받도록 한다. Install - root권한이 없거나 한 계정에서 사용할 때 : ~/.vim/plugin/taglist.vim - roo..
dumpbin은 microsoft에서 제공하는 COFF 개체 파일, COFF 개체의 표준 라이브러리, 실행 파일 및 DLL을 검사할 수 있는 유틸이다. 그렇다면 COFF란? 후다닥 구글링 해본 결과 COFF는 Common Object File Format은 Unix 시스템에서 사용된실행, object code, shared library의 컴퓨터 file 형식 이는 Unix System V에서 소개되어졌고, 이전에 사용되던 a.out format을 대체하였으며 XCOFF, ECOFF로 발전되는 기초가 되었다. 그래서 unix와 비슷한 시스템, Microsoft Window EFI환경 몇몇 embedded development system에서 계속 사용되고 있다는 내용이다. 출처 : http://en.wi..
dumpbbin.exe를 사용하려하면 아래와 같은 error가 발생할 때가 있다. 해당 문제는 말그대로 mspdb100.dll을 찾지 못하여 발생하는 link error이다 .-ㅅ- 해결 방법은 아래와 같이 간단하다 제어판->시스템(속성)->고급->환경변수 에서 path에 mspdb100.dll이 존재하는 "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE"를 추가해 주면된다. PS. 위 path는 visual studio 2010을 기준으로 기본적으로 설치된 폴더이며 자신이 설치한 visual studio폴더의 common7\IDE폴더를 찾아보면 될것이다. 그래도 안된다면 찾기로 mspdb100.dll이 존재하는 폴더를 찾아보면 될 것같다 ^^
전위전산자와 후위연산자 간단히 보면 전위전산자(++i)는 값이 먼저 증가하고 작업이 수행되며 후위연산자(i++)는 작업이 수행된 후에 값이 증가한다고 배웠다. 간단한 예를 들어보자 * 전위연산자(++i) char a[4] = "abcd"; int i = 0; printf("%c\n", a[++i]);output b 1 *후위연산자(++i) char a[4] = "abcd"; int i = 0; printf("%c\n", a[i++]); printf("%d\n", i); return -1;output a1와 같이 모든 동작 수행후 i는 0->1로 증가되었지만 출력된 문자를 보면 어떻게 동작되었는지 이해가 갈것이다. 그렇다면 속도면에서는 어떠할까? 요즘같이 컴파일러가 좋아진 상황에서는 기본타입(int, fl..
내가 얼마나 무지하면 어지껏 이 차이도 몰랐단 말인가. 약간의 삽질과 구글링을 통해 알아낸 내용이다. 너무도 간단하게 배열 = 포인터 라는 지식이 불러온 삽질이라 할 수 있다. 먼저 두 예제를 보자 1 code char str [ ] = "Hello World" ;str[3] = '3' ;printf ( "%s \n " , str ) ; result Hel3o World 2 code char *str = "Hello World" ;str[3] = '3' ;printf ( "%s \n " , str ) ; result Segmentation Fault (Core Dumped) 코드상 큰 차이가 없어보이지만 선언 부의 작은 차이가 만들어 낸 결과이다. 1번의 char[] 의 경우 local data를 가지는..