Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Schreiben in ein Maillot ähnelt dem Schreiben in eine Standarddatenträgerdatei. Der folgende Code verwendet die Funktionen CreateFile, WriteFile und CloseHandle , um eine kurze Nachricht in einem Maillot zu platzieren. Die Nachricht wird an den maillot-Server mit dem Namen "sample_mailslot" auf dem lokalen Computer gesendet. Der Code wird unter der Annahme ausgeführt, dass der maillot-Server bereits erstellt wurde.
#include <windows.h>
#include <stdio.h>
LPCTSTR SlotName = TEXT("\\\\.\\mailslot\\sample_mailslot");
BOOL WriteSlot(HANDLE hSlot, LPCTSTR lpszMessage)
{
BOOL fResult;
DWORD cbWritten;
fResult = WriteFile(hSlot,
lpszMessage,
(DWORD) (lstrlen(lpszMessage)+1)*sizeof(TCHAR),
&cbWritten,
(LPOVERLAPPED) NULL);
if (!fResult)
{
printf("WriteFile failed with %d.\n", GetLastError());
return FALSE;
}
printf("Slot written to successfully.\n");
return TRUE;
}
int main()
{
HANDLE hFile;
hFile = CreateFile(SlotName,
GENERIC_WRITE,
FILE_SHARE_READ,
(LPSECURITY_ATTRIBUTES) NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
(HANDLE) NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("CreateFile failed with %d.\n", GetLastError());
return FALSE;
}
WriteSlot(hFile, TEXT("Message one for mailslot."));
WriteSlot(hFile, TEXT("Message two for mailslot."));
Sleep(5000);
WriteSlot(hFile, TEXT("Message three for mailslot."));
CloseHandle(hFile);
return TRUE;
}
Im Folgenden sehen Sie die Ausgabe, die angezeigt wird, wenn dieses Beispiel mit dem maillot-Server ausgeführt wird, der unter Lesen aus einem Mailslot angezeigt wird.
Slot written to successfully.
Slot written to successfully.
Slot written to successfully.