[C언어]window mutex, linux mutex 코드 비교
~
리눅스와 윈도우에서 호환되는 뮤텍스를 사용하고 싶은경우
윈도우 운영체제에서 리눅스에서 사용되는 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입니다.
다행히 두 헤더파일에서 사용되는 함수들이 비슷하기에 쉽게 바꿀 수 있었어요!
함수들에 대한 자세한 설명은 구글에 함수명 검색해보시면 잘나오니까 검색해보세요!
~