본문 바로가기

분류 전체보기

(505)
bind error 방지 하기 int make_sock(int port, int users) { int sock; struct sockaddr_in my_addr; int iSockOpt; if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("SOCKET"); return (-1); } my_addr.sin_family = AF_INET; my_addr.sin_port = htons(port); my_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(my_addr.sin_zero), 8); // set the rest of the struct // prevent bind error iSockOpt = 1; setsockopt(sock, SOL_SOCKET,..
Poll_thread 소켓 출처 : http://blog.naver.com/pigeonkim?Redirect=Log&logNo=140037278234Poll함수를 이용하여 클라이언트 접속 여부만 확인하고 데이터 처리는 Thread에서 한다.#include #include #include #include #include #include #include #include #include #include #include #include #define BUFSIZE255intnread; intstate = 0; char*Client_add; charmsg[100];socklen_t clilen;intclnt_number = 0; intclnt_sockfds[10]; pthread_mutex_t mutx;structpollfd client[..
extern의 사용 원문 : http://blog.naver.com/worldts/60003783629출처 : http://blog.naver.com/endfirst?Redirect=Log&logNo=20007573126extern의 사용법은 크게 두가지가 있죠. 1. 다른 파일에 선언된 변수나 함수를 선언할 때 ◆ 기본적인 얘기 extern이라는 것은 저장공간에 대한 선언에 사용되는 키워드로서, 여러개의 소스파일에 대해서 작업할 때 필요한 것입니다. 무슨 얘긴고 하니... 쉽게 말해서 다른 파일에 선언된 변수가 있다 고 선언하는 겁니다. [file1.cpp] int x = 1; int f() { /* do something */ } int y = 2; extern z; [file2.cpp] extern int x; int..
GDB를 이용한 디버깅 GDB를 이용한 디버깅GNU 소스-레벨 디버거Fifth Edition, for GDB version April 1998Richard M. Stallman and Roland H. Pesch 초벌 번역 : 정강훈 차례GDB 개요 자유 소프트웨어 GDB 공헌자들 간단한 GDB 세션 GDB에 들어가고 나가기 GDB 실행 파일들 선택하기 모드 선택 GDB 종료하기 Shell 명령어들 GDB 명령어들 명령어 구문 명령어 완성 도움말 얻기 GDB에서 프로그램 실행시키기 디버깅을 위한 컴파일 프로그램 시작하기 프로그램 인자들 프로그램 환경 프로그램 작업 디렉토리 프로그램 들어가고 나가기 이미 실행되고 있는 프로세스 디버깅 자식 프로세스 죽이기 추가적인 프로세스 정보 다중 쓰레드인 프로그램 디버깅하기 다중 프로세스를 ..
gcc와 make 강좌 gcc와 make 강좌1. 시작하면서1.1 C 와 gcc 와의 관계 1.2 gcc 에 대한 이야기 하나 2. gcc 강좌2.1 gcc 에 대한 기본 이해 2.2 gcc 사용하기 3. make 강좌3.1 머릿말 3.2 make 시작해 봅시다. 3.3 꼬리말 규칙, 패턴 규칙 3.4 GNU make 확장 기능 3.5 매크로(Macro) 기능 3.6 마지막 주의 사항 3.7 잠시 마치면서 1. 시작하면서1.1 C 와 gcc 와의 관계 세상에서 제일 뛰어난 C 컴파일러 중 하나인 gcc 는 리눅스나 기타 자유 운영체제에 있어 커다란 보배가 아닐 수 없습니다. 우리가 알고 있는 유닉스가 C 언어로 거의 다 만들어졌듯이 리눅스의 모국어는 바로 gcc 입니다. 사실 많은 분들이 리눅스 해커(hacker), 구루(gu..
GDB 명령요약 출처 : http://blog.naver.com/endfirst?Redirect=Log&logNo=20007573126디버거란 프로그램 개발 도구로써, 프로그램을 개발하다가 에러가 발생하면 발생 위치 및 발생이유를 쉽게 찾을 수 있도록 도와 준다. [gdb] 명령 요약 프로그램 실행과 트레이스(trace)에 관련된 명령들 --------------------------------------------------------- run 현재의 인수를 사용하여 프로그램을 실행 run 새로운 를 가지고 프로그램을 실행 continue 현재 위치에서 프로그램을 계속 실행시킨다. (약자) c, cont, (dbx)return next 한 줄씩 실행 시킨다. 이 때 함수를 포함하고 있으면 함수를 수행시킨다. (약자) ..
공유메모리 큐 구성을 통한 효과적인 데이터 처리 프로세스 구현 출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/%B0%F8%C0%AF%B8%DE%B8%F0%B8%AE%BF%CD_%BC%BC%B8%B6%C6%F7%BE%EE%B8%A6_%C0%CC%BF%EB%C7%D1_%C7%C1%B7%CE%BC%BC%BD%BA%B0%A3_%B5%A5%C0%CC%C5%CD%C3%B3%B8%AE공유메모리 큐 구성을 통한 효과적인 데이터 처리 프로세스 구현 Contents1 소개 2 공유메모리를 이용한 프로세스간 데이터 공유 2.1 데이터 공유시 발생 가능한 문제 2.2 문제해결을 위한 다양한 제안 2.2.1 공유메모리 + 세마포어 2.2.2 공유메모리 + 생산자 통지 2.2.3 *** 공유메모리 + 파일 레코드 잠금 *** ..
IPC 설비-메시지 큐 출처: http://blog.naver.com/endfirst?Redirect=Log&logNo=20007573126IPC 설비-메시지 큐 UNIX는 프로세스 통신분야를 매우 풍부하게 지원하는 시스템이 되어, 서로 협력하는 태스크들로 구성된 시스템을 프로그램할 때 개발자들은 다양한 종류의 접근법을 사용할 수 있다. 고급 IPC 설비는 다음의 세 부류로 나뉜다. 1. 메시지 전달 2. 세마포 3 .공유 메모리 ipc 설비중 가장 중요한 것은 key 이다. ===key=== 1. 여러 프로세스 사이에 IPC 자원을 쉽게 공유해준다. 2. 식별될 수 있는 객체로 메시지 큐, 세마포의 집합, 공유 메모리 세그먼트 3. 키는 화일이름이 아니다. ==================라이브러리 함수============..