Unix Linux 49

[솔라리스] 공유 개체/라이브러리 빌드 및 링크 방법

참조 : http://kr.sun.com/service/techdocs/0003/000222.html 다음 예를 통해 이 과정을 알 수 있습니다. /*temp.c*/ hello () { printf ("Hello !\n"); } /*hello.c*/ #include main () { hello () ; } 이제 컴파일하고, 링크하고, 확인한 다음 실행하십시오. 1. 공유 개체 생성 % cc -pic -c temp.c % ld -o libgreet.so.1.1 -assert pure-text temp.o 2. 코드 컴파일 및 링크 % cc -o hello hello.c -L/user/temp/scratch -lgreet 3. 실행 파일에 공유 라이브러리가 포함되었는지 확인 % ldd hello 4. 프로그..

Unix Linux 2007.03.27

[솔라리스] 64비트로 계산할 수 있도록 컴파일하는 방법

참조 : http://kr.sun.com/service/techdocs/0003/000217.html 64비트 solaris 7에서 64비트 C 5.0을 사용하여 컴파일하면 다음과 같은 결과가 나옵니다. sizeof(long) = 8바이트가 아닌 4바이트, sizeof(int) = 4 64비트 컴파일 결과를 얻으려면 어떻게 해야 합니까? 64비트 SOLARIS 2.7용으로 컴파일하기: 이 컴파일러 버전은 32비트 또는 64비트 Solaris 2.7 SPARC Platform Edition에서 64비트 개체 바이너리를 만들 수 있습니다. 결과로 생성된 실행 파일은 64비트 커널을 실행하는 Solaris 2.7의 64비트 SPARC 또는 UltraSPARC 프로세서에서만 실행됩니다. 64비트 개체는 Sola..

Unix Linux 2007.03.27

리눅스 디버깅 기술 마스터하기

출처 : http://www.ibm.com/developerworks/kr/library/l-debug/index.html 이 글에서 네 가지 디버깅 시나리오를 제시한다. 시나리오 1의 경우, 메모리 할당 문제가 있는 두 개의 샘플 프로그램을 사용한다. MEMWATCH와 Yet Another Malloc Debugger (YAMD) 툴을 사용하여 디버깅 한다. 시나리오 2에서는 strace 유틸리티를 사용한다. 시스템 호출과 시그널을 추적하여 프로그램이 어디서 잘못되었는지를 규명한다. 시나리오 3에서는 리눅스 커널의 Oops를 사용하여 세그멘테이션 오류 문제를 해결하고 커널 소스 레벨 디버거(kgdb)를 설정하여 GNU 디버거(gdb)를 사용하여 같은 문제를 해결한다. kgdb 프로그램은 직렬 연결을 통..

Unix Linux 2007.03.05

HP-UX 개발환경 설정및 시스템 정보가져오기

출처 :http://www.joinc.co.kr/modules/moniwiki/wiki.php/HP-UX?action=raw&rev=1.17 많은 분들이 보시는 내용인 듯하여 기존의 원본을 네이버 블로그에서 보기 좋게 편집했습니다.원문의 내용에는 전혀(!) 손을 대지 않았으며 출처 링크를 통해서 원문을 확인하실 수도 있습니다.HP-UX 개발환경 설정및 시스템 정보가져오기|| 만든날 || 2003/12/11 || 관리자 || yundream || 홈페이지 ||http://www.joinc.co.kr || 이메일 || [mailto:yundream@joinc.co.kr] 목차에 들어가지 않은건 아직 정리되지 않은 정보들이다.패치 방법필요한 패치 번호를 확이한다. PHCO_12345 의 형식을 가진다.http..

Unix Linux 2007.02.28

Vi(m) 사용시 ^M 없애기

출처 :http://kltp.kldp.org/stories.php?story=05/02/17/4242887&topic=25 vi(m)을 사용하다보면 윈도우즈에서 작업한 텍스트 파일에 ^M 문자가 붙는 경우를 종종 봅니다. 현재 vim에서는 도스 문서로 문서를 읽게 되면 이 문자가 붙지 않기도 하지만 종종 이 문자 때문에 문서 보기가 상당히 귀찮아 보일 때가 있습니다. 특히, SQL 백업 파일을 볼 때 이 문자가 붙기도 하는데 특정한 내용을 볼 때 이런 문자가 붙은 것을 보기는 상당히 힘들죠. (sun의 파일을 aix에서 받을 때에도 이런 문제가 발생한다고 합니다) 이 문자는 ^M은 ^+M이 아니라 Control+v+m 입니다. 따라서, 다음에 이 문자를 없앨 때도 이렇게 타이핑을 하도록 합니다. 다음은h..

Unix Linux 2006.12.14

솔라리스 메모리 관리

출처 :http://superkkt.com/21 솔라리스는 리얼 메모리와 스왑 디바이스를 합친 크기를 메모리로 사용합니다. 예를들어 리얼 메모리가 1기가이고 스왑 디바이스 크기가 1기가라면 전체 메모리는 2기가 입니다. 메모리 할당이 어떻게 이루어지는 보기위해 아래 소스를 컴파일 해서 테스트를 해보겠습니다. 이 코드는 메모리 20메가를 할당 받고아무키나 누르면 할당 받은 메모리를 0으로 초기화 시킵니다. 다시 아무키나 누르면 할당받은 메모리를 반환하고 종료합니다. # cat test.c main() { char *a; a = malloc(20485760); // 20메가 할당 getchar(); // 키입력 기다림 memset(a, "0", 20485760); // 할당받은 메모리 0으로 초기화 getc..

Unix Linux 2006.11.10

vim 설정 및 활용

출처 :http://superkkt.com/86 :set ts=4 ( tab stop, tab을 4칸으로 설정 ) :set sw=4 ( shift width, 자동들여쓰기 시 4칸씩 들여쓰기 ) :set nobackup ( 백업파일을 만들지 않는다 ) :set cindent ( C형태의 들여쓰기 ) :set ruler ( 터미널 하단에 라인수/커서위치 표시 ) :set rulerformat=%70(% 로 원하는 만큼 들여쓰기, 내어쓰기(의 개수만큼 들여쓰기됨) 2. v로 비주얼모드에서 구간을 설정하고 Shift + > 또는 Shift +

Unix Linux 2006.11.10