c 에서 bool을 쓰고 싶을때 #include <stdbool.h>

프로그래밍/c,c++ 2022. 5. 17. 15:30
반응형

c 에서 bool을 쓰고 싶을때 #include <stdbool.h>

 

bool val = true;

val = false;

반응형
:

pthread 예제 코드

프로그래밍/c,c++ 2022. 5. 9. 22:37
반응형

pthread 사용을 위한 기본 예제

#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

static bool sIsStop = false;
static pthread_t sThreadId = 0;

static void *testThread(void *data) {
    while (true) {
        if (sIsStop) {
            break;
        }

        printf("%s[%d] TID = %d Running thread\n", __FUNCTION__, __LINE__, gettid());
        // add code

        usleep(1000 *1000);
    }

    sThreadId = 0;

    return NULL;
}

int startThread() {
    if (sThreadId == 0) {
        sIsStop = false;
        pthread_create(&sThreadId, NULL, &testThread, NULL);
    }
    else {
        printf("%s[%d] Thread is running\n", __FUNCTION__, __LINE__);
    }

    return 0;
}

int stopThread() {
    if (sThreadId != 0) {
        sIsStop = true;
        pthread_join(sThreadId, NULL);
    }
    else {
        printf("%s[%d] Thread is not running\n", __FUNCTION__, __LINE__);
    }
    return 0;
}

int main() {
    startThread();

    usleep(1000 *1000);
    printf("%s[%d] TID = %d test print\n", __FUNCTION__, __LINE__, gettid());
    usleep(1000 *1000);
    printf("%s[%d] TID = %d test print\n", __FUNCTION__, __LINE__, gettid());
    usleep(1000 *1000);
    printf("%s[%d] TID = %d test print\n", __FUNCTION__, __LINE__, gettid());

    stopThread();

    return 0;
}

 

실행 결과

$ ./a.out               
testThread[14] TID = 23131 Running thread
main[52] TID = 23130 test print
testThread[14] TID = 23131 Running thread
main[54] TID = 23130 test print
testThread[14] TID = 23131 Running thread
main[56] TID = 23130 test print
testThread[14] TID = 23131 Running thread
반응형
:

linux 에서의 파일 타입

OS/linux 2022. 5. 6. 15:36
반응형
#define S_IFMT  00170000    
#define S_IFSOCK 0140000    
#define S_IFLNK  0120000    
#define S_IFREG  0100000    
#define S_IFBLK  0060000    
#define S_IFDIR  0040000    
#define S_IFCHR  0020000    
#define S_IFIFO  0010000    
#define S_ISUID  0004000    
#define S_ISGID  0002000    
#define S_ISVTX  0001000    
    
#define S_ISLNK(m)  (((m) & S_IFMT) == S_IFLNK)    
#define S_ISREG(m)  (((m) & S_IFMT) == S_IFREG)    
#define S_ISDIR(m)  (((m) & S_IFMT) == S_IFDIR)    
#define S_ISCHR(m)  (((m) & S_IFMT) == S_IFCHR)    
#define S_ISBLK(m)  (((m) & S_IFMT) == S_IFBLK)    
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)    
#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)

/usr/include/linux/stat.h

반응형
: