Всем привет, делаю двусторонний канал из двух пайпов и при тестировании заметил, что записывая данные с одной стороны получаю разбивку сообщения при приеме. например
f
OnRead2 f
ffffff
OnRead2 f
OnRead2 ffff
OnRead2 f
т.е. напечатанное превратилось в три строки.
Попробовал установить флаг O_SYNC, но ситуация не изменилась.
FIFO открывается и создается так
if(mkfifo(pipeForWriting, S_IFIFO|S_IRWXU|S_IRWXG|S_IRWXO) != 0)
{
if(errno==EEXIST)
return 0;
printf("create named pipe error = %d\n", errno); /* произошла ошибка */
return errno;
}
pipeForWritingDescriptor = open(pipeForWriting, O_SYNC|O_WRONLY);
Как сделать так, что бы считывалось все сообщение целиком?