хочу запихнуть вывод в пайп для лесс...
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);
/*....*/
где-то тут я видимо ошибся, но никак не могу понять где:(...
Ответ на:
комментарий
от RomanU
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум fork ,exec и pipe (2008)
- Форум fork(), exec(), wait() (2020)
- Форум Реализация конвейра (2019)
- Форум execl не принимает аргумент из pipe (версия 2, обновленная) (2015)
- Форум Помогите с PIPE (2021)
- Форум fork + popen. Залипание на wait при SIGCHLD (2019)
- Форум Канал загадок (2007)
- Форум Sort (2012)
- Форум как присвоить ребенку новую группу процесса? (2020)
- Форум Проблема с pipe-ой. Глупо звучит... (2001)