엔지니어 230

shmget/ shmat 함수 예제

IPC 통신의 그다음 핵심인 Shared Memory 이용이다. 출처 : http://www.cs.cf.ac.uk/Dave/C/node27.html , http://failinux.com int shmget(key_t key, int size, int shmflg); key_t key 공유 메모리를 구별하는 식별 번호 int size 공유 메모리 크기 int shmflg 동작 옵션 void *shmat(int shmid, const void *shmaddr, int shmflg); int shmid 공유 메모리를 구별하는 식별 번호 void *shmaddr 첨부되는 어드레스 주소. 일반적으로 NULL을 지정 int shmflg 동작 옵션 key값만 서로 맞추면 제대로 동작한다. 예제코드는 shm_serv..

엔지니어 2012.07.13

msgsnd/ msgrcv 함수 예제

출처.: http://www.falinux.com/ IPC의 시작인 메시지큐 통신이다. int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); int msqid 메시지 큐 식별자 , msgget 함수의 리턴값이다. void *msgp 전송할 자료, void 포인터니까 아무 자료형이나 덮어쓰면된다. size_t msgsz 전송할 자료의 크기, 자료가 구조체건 뭐건 sizeof로 정확한 크기면 된다. int msgflg 동작 옵션, 큐에 공간이 있을떄까지 기다리면 0, 여유공간 없으면 복귀 시킬경우, IPC_NOWAIT. ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int ..

엔지니어 2012.07.12

[각 OS별]커널 bit 확인 하는 법 32/64bit

간단한 명령어로 확인이 가능하다. LONG 때문에 TCP 통신하는 경우 32/64bit 간에 오류가 나게 되는데 아래와 같이 하면 쉽게 확인이 된다. 출처 : http://baljack.tistory.com/6 LINUX # getconf LONG_BIT HP UX 11.xx 일 경우 # getconf KERNEL_BITS 64 10.xx 일 경우 # getconf LONG_MAX 2147483647 (64비트임)로 확인할 수 있습니다 AIX 현재 load된 kernel 이 32-bit 혹은 64-bit 인지 확인하는 명령어 # bootinfo -K 32 사용중인 machine이 32-bit 혹은 64-bit 인지 확인하는 명령어 # bootinfo -y 32 SOLARIS # isainfo -kv 64..

엔지니어 2012.07.12

CentOS 6 Minimal 리눅스 서버

출처 : http://www.3rabbitz.com/f01c33e7d8367da2#857542b4ddd63403# 2.1설정하기에 앞서 CentOS에서 어떠한 작업을 하게된다면 다음의 내용은 반드시 알고 있어야 한다. 설정파일 텍스트(text)파일로 저장되어 있기 때문에 파일을 복사, 수정, 저장 등을 할 수 있어야 한다. 따라서 다음 명령어들의 기본사용법을 알아두어야 한다. vi - Unix 및 Linux에 쓰이는 표준 편집기 http://www.cals.wisc.edu/calslab/pdf/Vi.pdf 명령 모드와 삽입 모드 대부분의 워드 프로세싱 소프트웨어와는 달리, vi 편집기는 두 가지 모드를 사용합니다 (또한 편집 모드라고도 함) 명령 모드 모드를 삽입 당신은 명령 모드에서 입력 명령 텍스트를..

엔지니어 2012.07.12

C FAQ (포인터 증가 2)

출처 http://c-faq.com Q: I'm trying to use pointers to manipulate an array of ints. What's wrong with this code? int array[5], i, *ip; for(i = 0; i < 5; i++) array[i] = i; ip = array; printf("%d\n", *(ip + 3 * sizeof(int))); I expected the last line to print 3, but it printed garbage. scaleing을 위해서 뒤에다가 sizeof(int)를 곱해줬는데 이걸로 인해서 존재하지 않는 영역을 건드리게 되면 위와 같이 에러가 난다. 게다가 sizeof(int)는 내가 사용하는 장비에 따라 싸이..

엔지니어 2012.07.12