/* arquivo test_pipe_read.c */ /* teste de leitura num tubo fechado em escrita */ #include #include #include #include int main() { int i, pid, p_desc[2] ; char c ; pipe(p_desc) ; /* criacao do tubo */ write(p_desc[1],"AB",2) ; /* escrita de duas letras no tubo */ close(p_desc[1]) ; /* fechamento do tubo em escrita */ /* tentativa de leitura no tuno */ pid = fork(); if(pid == -1) { perror("erro ao criar o filho"); //exit(-1); } else if(pid == 0 ) //aqui quem assume e o filho { sleep(20); for (i=1; i<=3; i++) { if ( (read(p_desc[0],&c,1) == 0) ) printf("Tubo vazio\n") ; else printf("Valor lido: %c\n",c) ; } } //exit(0); }