2011-01-28 18 views
0

私は以前にCreateNamedPipeを呼び出していましたが、私はWaitNamedPipe関数にぶら下がっています。 waitnamedpipe関数はパイプの開始を待つだけなので、なぜですか?コードは以下の通りです。おかげNamed Pipe、Server question

PROCESS_INFORMATION po; 
STARTUPINFO 
s; 

GetStartupInfo (&s); 

if(CreateProcess ("c:\s2.exe", NULL, NULL, NULL, false, 0, NULL, 
        NULL, &s, &po) == FALSE) 
{ 
    printf("Error %d starting CC\n", 
      GetLastError()); 
    exit(-1); 

} 

HANDLE pipe=CreateNamedPipe (pipe_name, 0x00000003, 
          FILE_FLAG_FIRST_PIPE_INSTANCE, 
          PIPE_UNLIMITED_INSTANCES,128, 128, 0, 
          NULL); 

while(WaitNamedPipe(pipe_name, INFINITE)==FALSE) Sleep(300); 

HANDLE CC = CreateFile (pipe_name, GENERIC_READ | GENERIC_WRITE, 0, NULL, 
         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 
         NULL); 

bool fConnected = ConnectNamedPipe(pipe, NULL) ? TRUE : 
        (GetLastError() == 
        ERROR_PIPE_CONNECTED); 

if(fConnected) printf("true"); 
else printf("false"); 
+4

実際の質問はここにあるのではないでしょうか?私は確かに1つを見ない。 –

答えて

1

"C:\s2.exe""C:\\s2.exe"