Windows анонимный канал ReadFile не читает

Я только начал делать некоторые трубы в Windows. Поэтому я написал небольшой пример кода для базовой READ / WRITE COMMUNICATION. Но ReadFile — это непрерывная блокировка и никогда не читает данные.

HANDLE Oprimek_Read;
HANDLE Oprimek_Write;
SECURITY_ATTRIBUTES varnostniAtributi;
varnostniAtributi.nLength = sizeof(SECURITY_ATTRIBUTES);
varnostniAtributi.bInheritHandle = TRUE;
varnostniAtributi.lpSecurityDescriptor = NULL;
thread prvi (pisanje);
thread drugi (branje);
BOOL ustvarjenaCev = FALSE;
ustvarjenaCev = CreatePipe(&Oprimek_Read,&Oprimek_Write,&varnostniAtributi,150);
if(ustvarjenaCev == TRUE)
printf("Anon pipe created\n");
else
printf("Error creating pipe\n");

DWORD dwWritten;
DWORD dwBytesToWrite = (DWORD)strlen(buffer);
cin>>beseda;
strcpy(buffer,beseda.c_str());
printf("Buffer to send is: %s\n", buffer);

ustvarjenaCev =     WriteFile(Oprimek_Write,buffer,dwBytesToWrite,&dwWritten,NULL);
FlushFileBuffers(Oprimek_Write);
FlushFileBuffers(Oprimek_Read);

if( ! ustvarjenaCev){
ErrorExit(TEXT("Write to Pipe"));
}
//-----------------HERE IS THE PROBLEM--------------
cout<<"Waiting\n";
ustvarjenaCev = ReadFile(Oprimek_Read,buffer1,sizeof(buffer),0,NULL);
cout<<"ReadPipe\n";

if( ! ustvarjenaCev){
ErrorExit(TEXT("Read to pipe"));
}
else
cout<<buffer1<<endl;

Я думаю, что я сделал все, что требовалось через документацию MSDN. Есть идеи?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector