Windows で名前付きパイプを使用して基本サーバーを作成しようとしています。パイプを接続しようとすると問題が発生します(私は推測します)。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main(){
HANDLE p1, p2;
printf("Server...");
p1 = CreateNamedPipe(TEXT("\\\\.\\PIPE\\pipe1"),PIPE_ACCESS_INBOUND,PIPE_TYPE_BYTE|PIPE_WAIT,3,0,0,0,NULL);
p2 = CreateNamedPipe(TEXT("\\\\.\\PIPE\\pipe2"),PIPE_ACCESS_OUTBOUND,PIPE_TYPE_BYTE|PIPE_WAIT,3,0,0,0,NULL);
if(p1 == INVALID_HANDLE_VALUE || p2 == INVALID_HANDLE_VALUE ) { printf("pipe fail");exit(2);}
printf("1. Pipes created");
ConnectNamedPipe(p1,NULL);
ConnectNamedPipe(p2,NULL);
printf("2. Pipes connected");
DisconnectNamedPipe(p1);
DisconnectNamedPipe(p2);
CloseHandle(p1);
CloseHandle(p2);
printf("3. Pipes disconnected & closed");
printf("exit server...");
return 0;
}
プログラムを実行しても何も印刷されず、手動で停止すると
Server...1. Pipes created
(IDEコンソール-Eclipseで)印刷されるか、プログラムを直接実行すると同じように印刷され、保持されます。