LINUX.ORG.RU

Канал загадок


0

0

Народ в чем ошибка? Почему через канал не передается "hello!", а вывод "/usr/bin/hcitool con" попадает в др. процесс.

#include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <stdio.h> #include <string.h>

int main(int argc,char **argv) { int pipes[2]; pid_t potomok=0; pipe(pipes); if((potomok=fork())<0) { printf("We have a trouble!"); return -1; } else { if(potomok) { int reading,count=0,i; char mas[5000],ch; dup2(pipes[0],0); close(pipes[0]); close(pipes[1]); while((i=read(0,&ch,1))>0) { fprintf(stderr,"%d",i); mas[count]=ch; count++; } mas[count]='\0'; printf("->%s<-%d",mas,count); } else { dup2(pipes[1],1); close(pipes[1]); close(pipes[0]); sleep(2); fprintf(stdout,"hello!"); execl("/usr/bin/hcitool","/usr/bin/hcitool","con",NULL); }

} }

anonymous

Жесть, отформатируй плз.

k0l0b0k ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.