Linux Programming2 Log template #ifndef __mylog_h__ #define __mylog_h__ #include #ifndef LOG_PROGRAM_TAG #define LOG_PROGRAM_TAG"[LOG]" #endif #define LOG_TIME_NSEC_DIV1000 // 1000 * nano sec = micro sec. extern int giLogLevel; #define LOG_LEVEL_ERR1 #define LOG_LEVEL_INFO2 #define LOG_LEVEL_DEBUG3 #define LOG_LEVEL_VERBOSE4 #define LOG_BASE(level, pt, mt, x, ...)\ do {\ struct timespec tp;\ clock_gettime(CLOCK_BOOTTIME, &tp);.. 2022. 9. 28. 프로세스 내에서 Thread 간 통신을 위한 메시지 큐 구현 프로세스 간 메시지 통신은 System V (msgget, msgsnd, msgrcv) 나 POSIX (mq_open, mq_send, mq_receive) 라이브러리로 구현 가능. 프로세스 내의 통신이라면 mutex 와 queue 를 이용하여 아래처럼 구현하면, kernel space 까지 데이터 이동이 없으므로 효율적일 것임 #include #include #include #include #include #include #include // clock() #define LOGP(x, ...)printf("[%ld][T0x04%lx] " x "\n", clock(), (pthread_self()&0xffff), ##__VA_ARGS__) typedef struct st_elem { uint8_t *da.. 2022. 8. 27. 이전 1 다음