inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Windows 시스템 프로그래밍 - 기본

세마포어

세마포어 예제 소스 코드 문의

해결된 질문

482

홍hjkh

작성한 질문수 3

0

안녕하세요 강사님

세마포어 개념을 이해하려고 노력중입니다 ㅎㅎ
강의 보며 소스코드를 따라치면서 이해해보도록 노력하고 있습니다.

아래와 같이 실행하니, 보안에러가 발생하고 있습니다.
혹시 제가 소스코드를 잘못작성한건지, 실행환경설정을 바꿔주면 실행되는지 문의 드립니다.


#define CRTSECURE_NO_WARNINGS
#include <iostream>
#include <string.h>
#include <Windows.h>

#include <process.h>

#include <conio.h>

// Semaphore를 이용한 동기화
HANDLE g_hSema;

TCHAR g_StringList[10][64] = { 0 };

UINT WINAPI ThreadSemaphore(LPVOID param)
{
	int nIndex = (int)param;

	while (TRUE)
	{

		::wsprintf(g_StringList[nIndex],
			TEXT("%d thred is Waiting"), nIndex);
		::Sleep(500);

		DWORD dwResult = ::WaitForSingleObject(g_hSema, INFINITE); // g_hSema이 끝나기를

		::wsprintf(g_StringList[nIndex],
			TEXT("%d thred is Selected##"), nIndex);
		::Sleep(500);

		::ReleaseSemaphore(g_hSema, 1, NULL);

	}
	return 0; 

}

 

int main(void)
{ 
	g_hSema = ::CreateSemaphore(NULL, 3, 3, NULL);
	UINT nThreadId = 0;
	HANDLE hThread = NULL; // 핸들 생성

	for (int i = 0; i < 10; i++) {

		hThread = (HANDLE)::_beginthreadex(
			NULL,
			0,
			ThreadSemaphore,
			(LPVOID)i,
			0,
			&nThreadId);
	}

	while (1)
	{
		system("cls");
		for (int i = 0; i < 10; i++)
		{
		    putws(gStringList[i]);
		}
		::Sleep(1000);
	} 
	return 0;

}

 

 

<에러 문구>
세마포어 에러.png

c system-programming vc++

답변 2

1

홍hjkh

답변감사합니다.

putws(gStringList[i]);에서 소스코드를 잘못작성해서 컴파일 오류가 있었네요.

해결했습니다. 감사합니다.

세마포어.png

0

널널한 개발자

지정된 파일을 찾을 수 없는 경우는 .exe 파일 빌드에 실패했기 때문입니다. 그리고 코드를 컴파일 해보니 컴파일 오류가 있었습니다. 즉, 컴파일 오류가 있어서 실행파일(.exe) 빌드에 실패했고 따라서 실행자체가 불가능한 것입니다. 참고하시기 바랍니다. :)

세마포어 개수에 따른 스레드 점유상태

0

61

2

메모리 맵과 비동기 입/출력 조합 #2 수업내용에 질문있습니다.

0

96

2

힙 메모리 블럭 관리 방법 질문

0

97

2

MapViewOfFile 원리 관련 질문있습니다

0

102

1

가상 메모리 시스템 영역 구분

0

96

2

스택 크기 결정 단계

0

75

2

시스템프로그래밍-응용편

0

130

2

바이트와 관련된 유튜브 영상을 못 찾겠어요ㅠㅠ

0

94

2

파일 복사에 관한 질문입니다

0

114

2

세마포어 예제에 대한 질문이 있습니다.

0

111

2

메모장 쓰레기값 ?

0

133

2

64 bit 운영체제라면 가상메모리가

0

180

2

alertable Wait 상태 질문있습니다

0

226

1

GetCurrentDirectory 관련 질문

0

169

2

세마포어 예제중 형변환에 대한 질문

0

162

2

강사님 dll 지연로딩 관련하여 질문 드립니다

0

205

3

선장님 , _beginThreadEx() 함수 원리는 어디서 정보를 얻을 수 있을까요?

0

286

2

메모리 맵 강의 예제의 결과가 이상합니다.

0

227

1

강사님 파일입출력(Callback함수)와 관련하여 질문 드립니다.

0

348

2

dll 명시적 링크 오류 (원인 및 해결 방법이 필요 합니다)

0

968

2

static 영역의 rw 가능한 곳은 어떤 데이터가 담기는지 궁금합니다.

0

223

1

TerminanteProcess 와 관련하여 질문 드립니다.

0

172

1

강사님 스레드 관련 질문 드립니다.

0

226

1

강사님 메뉴얼 중 이것도 궁금해서 여쭤봅니다.

0

210

2