본문 바로가기

Programming60

쓰레드 - 이벤트기반 동기화 이벤트기반 동기화 HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, // TRUE : Manual-Reset Mode, FALSE : Auto-Reset Mode BOOL bInitialState, // TRUE : Signaled 상태로 생성, FALSE : Non-Signaled 상태로 생성 LPCTSTR lpName ); 쓰레드나 프로세스의 커널 오브젝트는 초기(Non-Signaled 상태)에서 종료시에 Signaled 상태로 변경되지만 이벤트 오브젝트의 경우에는 수동으로 함수 호출(SetEvent)을 통해서 해줘야한다. 보통 WaitForSingleObject()함수는 Signaled 상태가 된 경우에 반.. 2013. 1. 3.
IPC - 메일 슬롯 프로세스는 각각 독립적으로 Stack, Heap, Data 등의 영역을 가지는데 해당 영역에 다른 프로세스에서 직접적으로 접근할 수 없다. 이런 상황에서 프로세스간의 통신을 하는 방법이 IPC(Inter Process Communication)이다. 메일 슬롯 - 단방향 통신 -> 메일 슬롯 2개를 만들어서 양방향 통신. [메일 슬롯 이름 형식] 2012. 12. 26.
Unix 입출력 [ read/write - recv/send ] read/write ssize_t read(int fd, void *buf, size_t count); (엔터값도 저장함.) ssize_t write(int fd, const void *buf, size_t count); recv/send : socket 전용 ssize_t recv(int s, void *buf, size_t len, int flags); ssize_t send(int s, const void *buf, size_t len, int flags); 2012. 11. 30.
함수 포인터 사용 함수 포인터는 말 그래도 함수를 가리키는 포인터이다. . . #include int add(int x, int y) { return x+y; } void main() { int (*padd)(int,int); padd = add; //함수 포인터 padd는 add라는 함수를 가리킨다. printf("1 + 3 = %d \n", padd(1, 3)); } int (*padd)(int,int); 는 함수포인터 padd를 선언했다. padd는 반환형이 int이며 인자값으로 int형 파라미터 2개를 받는 함수 형태에 대해서만 가리킬 수 있다. 나는 쉘 코드 테스트나, DLL에서 GetProcAddress에 주로 사용한다. GetProcAddress를 사용한다 치면 함수 포인터의 반환형은 (int((*)(int,.. 2012. 9. 23.