부산IT학원/스마트컨트롤러
-
20140625 (메시지 큐 우선순위, 공유 메모리)부산IT학원/스마트컨트롤러 2014. 6. 25. 12:30
88일차 ----------------------메시지 큐 우선순위---------------------- --- 메시지가 처리될 때 우선순위를 정할 수도 있다. 예제 소스) 26_3.c 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 #define SIZE 124 8 9 struct 10 { 11 long type; 12 char data[SIZE]; 13 }msg_data; 14 15 int main() 16 { 17 int msqid; 18 int data_len; 19 char buffer[SIZE]; 20 21 if((msqid = msgget((key_t)7878, IPC_CREAT |0666)) == -1) 22 { 23 perror(..
-
20140624 (레코드 잠금, 파이프 통신, 메시지 큐)부산IT학원/스마트컨트롤러 2014. 6. 24. 14:51
87일차 ------------------레코드 잠금------------------ --- 파일을 이용해 프로세스간 통신 소스)exe3.c 1 #include 2 #include 3 #include 4 5 int main(int argc, char **argv) 6 { 7 int fd; 8 struct flock filelock; 9 10 filelock.l_type = F_WRLCK; 11 filelock.l_whence = SEEK_SET; 12 filelock.l_start = 0; 13 filelock.l_len = 0; 14 15 fd = open(argv[1], O_RDWR | O_CREAT, 0666); 16 17 if(fcntl(fd, F_SETLK, &filelock) == -1) 18..
-
20140623 (pthread, 레코드 잠금)부산IT학원/스마트컨트롤러 2014. 6. 23. 16:26
86일차 ---------------pthread--------------- --- pthread 관련 함수 출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Thread/Beginning/PthreadApiReference Pthread API Reference윤 상배 고친 과정고침 0.92004년 6월 30일 12시pthread 취소관련 api 추가고침 0.82003년 10월 9일 12시pthread 시그널 관련 api 추가 1. 소개이 문서는 pthread 레퍼런스 문서이다. pthread 에서 제공하는 모든 함수의 레퍼런스를 제공하고 있지는 않지만, 자주 쓰일만한 대부분의 함수들은 정리되어 있음으로 참고할만한 가치가 있을것이다.이 문서에 빠진..
-
20140620 (시그널, 멀티쓰레드)부산IT학원/스마트컨트롤러 2014. 6. 20. 10:44
85일차 --------------시그널-------------- --- 시그널프로그램에게 신호를 보내 프로그램이 그에 따라 종료되거나어떤 처리를 하게 되는데 이 신호를 시그널이라 한다. (신호가 영어로 시그널인데..) -- 시그널 종류 1. SIGHUP(HUP) : 연결 끊기. 프로세스의 설정파일을 다시 읽는데 사용된다.2. SIGINT(INT) : 인터럽트3. SIGQUIOT(QUIT) : 종료4. SIGILL(ILL) : 잘못된 명령5. SIGTRAP(TRAP) : 트렙 추적6. SIGIOT(IOT) : IOT 명령7. SIGBUS(BUS) : 버스 에러8. SIGFPE(FPE) : 고정 소수점 예외9. SIGKILL(KILL) : 죽이기. 이 시그널은 잡히지 않는다.10. SIGUSR1(USR1)..
-
20140619 (프로세스, 함수 포인터)부산IT학원/스마트컨트롤러 2014. 6. 19. 12:46
84일차 --------------프로세스-------------- --- exit프로세스를 정상적으로 종료시키는 함수. #include void exit(int status); status : main 함수의 리턴값 리턴값없음 --- atexit프로그램을 정상적으로 종료할 때 실행될 함수를 등록한다. #include int atexit( void (*function)(void) ); function : 등록할 함수 이름으로 인수르 값는 함수 리턴값성공시0실패시-1 --- wait자식 프로세스가 종료될 때까지 기다린다. #include #include pid_t wait(int *status); status : 자식 프로세스가 종료될 때의 상태 정보. status 4byte 중에 하위 2byte만 사용하..
-
20140618 (3 Hand shake, 4 way Hand shake, 프로세스)부산IT학원/스마트컨트롤러 2014. 6. 18. 10:31
83일차 ------------------Network 이론------------------ --- 3 Hand Shake 1. SYN Segment(Client의 Synchronization Information 전송): Client는 Source Port에 자신을 나타내는 Port Number를 넣고, Destination Port에는 Server를 가리키는 Port Number를 넣는다. Sequence Number에 Client의 ISN(Initialization Sequence Number)를 넣고, Acknowledgment Number는 0을 넣고, Flag는 SYN bit를 1로 설정하여 전송한다. 2. SYN+ACK Segment(Server의 Synchronization Informat..
-
20140616 (TCP/IP client, server 소스)부산IT학원/스마트컨트롤러 2014. 6. 16. 17:06
81일차 --------------------------------------TCP/IP 소켓 프로그래밍 client, server-------------------------------------- --- client 소스 흐름 socket()↓connect()↓close() - server 소스 흐름 socket()↓bind()↓listen()↓accpet()↓close() --- bind소켓에 저장된 소켓 주소를 넣는다. #include #include int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); sockfd : 소켓 번호my_addr : 소켓 주소 정보addrlen : 소켓 주소 정보 길이 리턴값 : 성공 시 0, 실패 시..
-
20140613 (TCP/IP)부산IT학원/스마트컨트롤러 2014. 6. 13. 10:44
80일차 ------------------------------------------TCP/IP 소켓 프로그래밍 기본 정보------------------------------------------ --- 소켓 프로그래밍우선 소스를 보자. // 소켓 생성iSock = socket(AF_INET, SOCK_STREAM, 0);if(-1 == iSock){ fprintf(stderr, "소켓을 생성할 수 없습니다.\n"); return 10;} // 소켓 정보 부여 stAddr.sin_family = AF_INET; stAddr.sin_port = htons(4016); stAddr.sin_addr = inet_addr("192.168.10.250"); --- socket 함수 -- 원형#include #i..