LINUX.ORG.RU

использование fork,pipe...


0

0

хочу запихнуть вывод в пайп для лесс...

void print_list(list lst)
{
int p[2], status, options;
pid_t pid;
pipe(p);
close(p[1]);
if (!(pid=fork())) {
close(0);
dup2(p[0],0);
execl("less","less");
}
else {
Xprint_list(lst, p[0]);
waitpid(pid, &status, options);
}
}

void Xprint_list(list lst, int descr)
{
list_el *p=*lst;
FILE * fp;

fp=fdopen(descr,"w");

while (p){
fprintf(fp,"\tRecord:\n");
fprintelem(fp, p->data);
p=p->next;
}
fclose(fp);
}

/*....*/
print_list(dblistname);
/*....*/


где-то тут я видимо ошибся, но никак не могу понять где:(...


Что-то мне кажется, что изначально идея не верна.
Не легче ли было воспользоваться popen?
Столько телодвижений вместо этого ....

RomanU
()
Ответ на: комментарий от RomanU

ВАХ!!!!!, спасибо большое!!!... одним легким движением я сделал то, что мне нужно:)....

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