Мне нужно сделать программу на C, которая дает родителю строку, родитель редактирует ее, помещает в канал, затем дочерний элемент проверяет ее и отправляет обратно. По какой-то причине только родитель выполняет. Я хотел, чтобы родитель отправил текст, затем дождался казни ребенка и прочитал ответ. Но код просто полностью игнорирует дочерний элемент.
Вот фрагмент:
char response[10];
pid_t pid = fork();
int p[2];
pipe(p);
if(pid!=0)
{
char username[255];
CutString(8,command,username); // a function of mine i verified
write(p[1],username,sizeof(username));
close(p[1]);
wait(NULL);
read(p[0],response,8);//the answer is always 8 bytes
close(p[0]);
}
else //never gets here
{
char buffer[255];
size_t bufferIndex=0;
char ch;
while (ch != '\0')
{
read(p[0],&ch,1);
buffer[bufferIndex++]=ch;
}
close(p[0]);
f=fopen("config.txt","r");
write(p[1],SearchInFile(f,buffer),8);
close(p[1]);
}