본문 바로가기
반응형

IT창고/System17

세마포어 / 뮤텍스 / 이벤트를 이용한 실습 세마포어 / 뮤텍스 / 이벤트를 이용한 실습 2007. 3. 8.
비동기 IO / IOCP(윈도우에만 있다.) #include #include #include DWORD WINAPI foo(void *p) { HANDLE hPort = (HANDLE)p; //이제 IOCP의 오나료 Q에 완료된 비동기 작업을 들어 올때 까지 대기한다. DWORD key; DWORD bytes; OVERLAPPED * ov; while(1) { GetQueuedCompletionStatus(hPort, &bytes, &key, &ov, INFINITE); printf("비동기 작업이 완료 되었습니다.\n"); printf("완료키 : %d\n", key); printf("Bytes : %d\n", bytes); } return 0; } void main() { HANDLE hFile = CreateFile("COM1", //Seri.. 2007. 1. 22.
이름없는 파이프 //server#include #include // 익명의 Pipe : 단방향의 이름없는 pipe.(Named Pipe 는 양방향, 단방향 모두 가능) void main() { HANDLE hRead, hWrite; CreatePipe( &hRead, &hWrite, 0, 4096); // hWrite 에 쓰면 hRead에서 읽을수 있다. // hRead를 다른 프로세스에 전달해 주어야 한다. // 이미 다른 프로세스가 실행중이라면 DuplicateHandle()로 // 새롭게 자식을 만들면서 전달하려면 KO 상속을 이용한다. // 읽기 위한 핸들을 상속 가능하게 한다. SetHandleInformation( hRead, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT); cha.. 2007. 1. 22.
파이프 //server#include #include DWORD WINAPI foo( void *p) { HANDLE hPipe = CreateNamedPipe("\\\\.\\pipe\\source_server",//UNC PIPE_ACCESS_OUTBOUND,// 출력전용 PIPE_TYPE_BYTE,//stream방식 1,//최대 instance개숫 4096,4096,//최대 입출력 버퍼 크기 1000,//WaitNamedPipe()로 대기할 시간 0);//KO보안 if(hPipe == INVALID_HANDLE_VALUE) { printf("파이프를 생성할 수 없습니다.\n"); return 0; } //----------------------------------------------------------.. 2007. 1. 22.
반응형