при условии, что труба,
int pipe_fd[2];
pipe(pipe_fd);
Мы видим, что один процесс будет записываться в трубу в произвольное время. В одном из процессов мы хотим иметь возможность проверять содержимое трубы без блокировки.
то есть. Хотя типичное чтение будет блокироваться, если ничего не присутствует, и конец записи остается открытым. Я хочу пойти делать другие вещи и, возможно, даже немного почитать немного, сделать некоторые вещи, а затем проверить, чтобы увидеть, есть ли еще, a la:
close(pipe_fd[1]);
while(1){
if(/**Check pipe contents**/){
int present_chars = 0;
while( read(pipe_fd[0],&buffer[present_chars],1) != 0)
++present_chars;
//do something
}
else
//do something else
}
Спасибо заранее!