~
리눅스와 윈도우에서 호환되는 뮤텍스를 사용하고 싶은경우
윈도우 운영체제에서 리눅스에서 사용되는 pthread.h를 다운받아서 프로그래밍하면 편해요!
하지만 이미 windows.h를 이용해 프로그래밍을 하신 분들을 위해
windows.h -> pthread.h 로 코드를 변경한 예를 보여드릴게요.
~
#include <windows.h>
HANDLE hMutex; DWORD wait_result;
hMutex = CreateMutex(NULL, FALSE, LOG_MUTEX_NAME);
if (hMutex == NULL) { return; }
wait_result = WaitForSingleObject(hMutex, 10000);
if (wait_result != WAIT_OBJECT_0) { CloseHandle(hMutex); return; }
~코드~
ReleaseMutex(hMutex); CloseHandle(hMutex);
#include <pthread.h>
pthread_mutex_t mutx; int mutxstate, mutex_lock_error;
pthread_t thread1;
mutxstate = pthread_mutex_init(&mutx, NULL); if (mutxstate) return;
mutex_lock_error = pthread_mutex_lock (&mutx);
if (mutex_lock_error) { pthread_mutex_destroy(&mutx); return; }
~코드~
pthread_mutex_unlock(&mutx); pthread_mutex_destroy(&mutx);
~
위가 windows.h, 아래가 pthread.h입니다.
다행히 두 헤더파일에서 사용되는 함수들이 비슷하기에 쉽게 바꿀 수 있었어요!
함수들에 대한 자세한 설명은 구글에 함수명 검색해보시면 잘나오니까 검색해보세요!
~
'프로그래밍 > C' 카테고리의 다른 글
[C언어]리눅스/윈도우 호환 프로그래밍 기타 팁 (0) | 2020.10.01 |
---|---|
[C언어]조건부로 linux, Win32 컴파일 - ifdef 이용 (0) | 2020.10.01 |
[C언어]리눅스 Modbus통신 RS485 Write register (0) | 2020.10.01 |
[C언어]리눅스 Modbus통신 RS485 Read input registers (0) | 2020.10.01 |
[C언어] C, C++ 코드실행시간 측정하기 (0) | 2020.10.01 |