所以我的标题可能没有意义,但这是我的问题:
我正在写一个shell,当然我必须处理管道。它们工作,多管道是好的,没有溢出,但有一个问题,当我在管道的写入极端执行命令时,它总是在其中写出奇怪的字符,我只能在看到它时看到它“cat -e”。
这是我输入的命令行:
$> ls | cat -e
这是输出:
^[[?12l^[[?25h42sh$
42sh.dSYM$
Makefile$
auteur$
include$
libft$
src$
这是没有选项-e:
的输出42sh$
42sh.dSYM$
Makefile$
auteur$
include$
libft$
src$
任何人都知道可能来自哪里?
由于
编辑:这是我管道的功能:
static void launch_process(t_shell *sh, t_job *job)
{
t_process *process;
int iofile[2];
int pipefd[2];
int i;
process = job->process;
iofile[0] = 0;
i = get_num_process(job->process);
while (job->process)
{
if (job->process->next)
{
pipe(pipefd);
iofile[1] = pipefd[1];
}
else
iofile[1] = 1;
exec_process(sh, job, iofile);
iofile[0] = pipefd[0];
job->process = job->process->next;
}
job->process = process;
wait_for_job(job, i);
}
所以基本上,我有我的进程列表,在这种情况下是ls和cat,我在另一个之后执行。