Share via


Mailslot 만들기

Mailslot은 CreateMailslot, GetMailslotInfoSetMailslotInfo의 세 가지 특수 함수에서 지원 됩니다. 이러한 함수는 mailslot 서버에서 사용됩니다.

다음 코드 샘플에서는 CreateMailslot 함수를 사용하여 "sample_mailslot"이라는 mailslot에 대한 핸들을 검색합니다. Mailslot에 쓰기의 코드 샘플은 클라이언트 애플리케이션이 이 mailslot에 쓸 수 있는 방법을 보여 줍니다.

#include <windows.h>
#include <stdio.h>

HANDLE hSlot;
LPCTSTR SlotName = TEXT("\\\\.\\mailslot\\sample_mailslot");

BOOL WINAPI MakeSlot(LPCTSTR lpszSlotName) 
{ 
    hSlot = CreateMailslot(lpszSlotName, 
        0,                             // no maximum message size 
        MAILSLOT_WAIT_FOREVER,         // no time-out for operations 
        (LPSECURITY_ATTRIBUTES) NULL); // default security
 
    if (hSlot == INVALID_HANDLE_VALUE) 
    { 
        printf("CreateMailslot failed with %d\n", GetLastError());
        return FALSE; 
    } 
    else printf("Mailslot created successfully.\n"); 
    return TRUE; 
}

void main()
{ 
   MakeSlot(SlotName);
}

자식 프로세스에서 상속할 수 있는 mailslot을 만들려면 애플리케이션에서 CreateMailslot의 마지막 매개 변수로 전달된 SECURITY_ATTRIBUTES 구조를 변경해야 합니다. 이를 위해 애플리케이션은 이 구조체의 bInheritHandle 멤버를 TRUE 로 설정합니다(기본 설정은 FALSE).