목록Language/C (7)
시다바리
시간 관련 관련함수 1) sleep(), usleep(), nanosleep() vs. Sleep() 이들 함수는 모두 프로세스를 일정 시간 대기시키는 함수입니다. 함수명도 다르지만 함수의 사용법 또한 좀 다릅니다. 각각의 함수 원형은 다음과 같이 생겼습니다. #include unsigned int sleep(unsigned int seconds); void usleep(unsigned long usec); #include int nanosleep(const struct timespec *req, struct timespec *rem); #include VOID Sleep(DWORD dwMilliseconds); VC++에서 제공하는 Sleep()함수는 밀리초를 인자로 받아들이는 반면 GNU C계열에서 ..
서버: select() 함수 [출처] : 시월의 주문 select() 콜은 네트워크에서 사용되는 전송 방식 중 I/O multiplexing 이란 기능을 사용할 수 있게 해주는 함수 입니다. I/O Multiplexing 기술을 사용하면 여러개의 소켓을 좀더 간편하게 관리할 수 있습니다. 실제로 사용되는 부분을 직설적으로 표현하자면 사용자 여려멍 접속을 받아서 그 사용자로 부터의 입력, 서버에서 사용자에게로의 출력 그리고 예외 처리를 해줄 수 있다고 할 수 있습니다. select() 는 Unix Network Programming 책의, 6.13 입출력 다중화 (309 페이지) 에 보시면 자세히 서술되어 있습니다. 그리고 저는 리눅스 서버 중심으로 설명 드리겠습니다. 다음은 select 함수의 man p..
POSIX 쓰레드로 멀티 쓰레드 프로그래밍하기
#include #include #include #define MAXRANDOM 60 // 링크 리스트 구조체 typedef struct ListNode { int data; struct ListNode *link; } ListNode; // 사용되는 함수 선언 ListNode *create_node(int data, ListNode *link); void insert_node(ListNode **phead, ListNode *p, ListNode *new_node); void display(ListNode *head); void main() { int i; int number; ListNode *linklist = NULL; ListNode *p; randomize(); for(i = 0; i < 10..
WM_IME_COMPOSITION The WM_IME_COMPOSITION message is sent to an application when the IME changes composition status as a result of a key stroke. An application should process this message if it displays composition characters itself. Otherwise, it should send the message to the IME window.chDBCS = (WORD) wParam; fFlags = (BOOL) lParam; Parameters chDBCS DBCS character representing the latest cha..
출처 : http://cafe.daum.net/ITdreamHACKER/4J9G/25 1.1.1 fork() 함수는 어떤 일을 하는가? #include #include pid_t fork(void); `fork()' 함수는 존제하는 프로세스가 새로운 프로세스를 생성하고자 할때 사용된다. 이때 새로 생성되는 프로세스를 자식 프로세스라고 부르고, 신규 프로세스를 생성하는 프로세스를 부모 프로세스라고 부른다. 또한 프로세스 생성이 성공적으로 이루어지면 부모 프로세스쪽으로는 자식 프로세스의 Process ID가 넘어오고, 자식 프로세스로는 0이 넘어온다. 이 간단한 코드가 이 기본원리를 설명한다 pid_t pid; switch (pid = fork()) { case -1: /* 여기서 pid는 -1이고, for..
세션(session) : 프로세스 그룹들의 모임, 프로세스 그룹을 일종의 작업이라 하고, 세션은 일종의 작업공간. setsid() : 새로운 세션을 하나 만드는 함수. 다만 현재 프로세스 그룹 리더인 프로세스가 호출할 수는 없다. 함수원형 #include #include pid_t setsid(void); 세션 생성과정 1) setsid()를 호출한 프로세스는 새로운 하나의 세션을 생성하고, 그 세션의 세션리더가 된다. 2) setsid()를 호출한 프로세스는 새로운 프로세스그룹을 생성하게 되고, 그 프로세스 그룹의 프로세스 그룹리더가 된다. 3) setsid()를 호출한 프로세스는 새로운 세션을 만들었으므로 이전 세션의 제어 터미널을 사용할 수 없다. 따라서 setsid()를 호출하여 새롭게 만든 세션..