본문 바로가기
[ ★ ]Study/Network

Available threads in Windows and Linux.

by nroses-taek 2017. 2. 26.
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
 
#ifndef __linux__ // for windows 
    #include <windows.h>
    #define CREATE_THREAD(id, function, param) \
                CreateThread(NULL0, function, param, 0&id);
    #define THREAD_TYPE_RETURN DWORD WINAP
    #define THREAD_TYPE_PARAM LPVOID
    #define THREAD_TYPE_ID DWORD
    #define SLEEP(x) Sleep(x*1000)
#else        // for linux 
    #include <pthread.h>
    #include <unistd.h>
    #define CREATE_THREAD(id, function, param) \
                pthread_create(&id, NULL, function, param);
    #define THREAD_TYPE_RETURN void*
    #define THREAD_TYPE_PARAM void*
    #define THREAD_TYPE_ID pthread_t
    #define SLEEP(x) sleep(x)
#endif
 
THREAD_TYPE_RETURN thraed_fuction(THREAD_TYPE_PARAM param) {
    while (1) {
        printf("%s\n", (char*)param);
        Sleep(1);
    }
    return 0;
}
int main(void) {
    THREAD_TYPE_ID thread_id;
    char *msg = "hi";
 
    CREATE_THREAD(thread_id, thraed_fuction, msg);
 
    while (1) {
        printf("%s\n""hello!!");
        Sleep(1);
    }
    return 0;
}
cs



window or linux common


전처리기를 이용하여 리눅스와 윈도우를 구분하여 처리하게 되며 스레드 생성 또한 매크로 함수를 정의하여 처리하도록 함.

추후 좀 더 자세히 포스팅 계획.

 

반응형

'[ ★ ]Study > Network' 카테고리의 다른 글

bind 함수  (0) 2017.03.05
socket 함수 (linux, window)  (0) 2017.03.05
CGI 란  (0) 2017.02.26
Packet Capture Library  (0) 2017.02.26
connect 함수  (0) 2017.02.26

댓글