标签: c pipe fork deadlock execvp
有一次,我在grep之类的管道中让父级执行ls -la和子级执行ls -la | grep something,并按要求工作。父母等待孩子完成。但是现在相反情况下,父级正在执行ls -la,而子级grep正在执行。父母等待孩子完成,孩子等待标准输入。如何避免死锁?我应该并行执行它们并将输出保存到缓冲区吗?通过execvp执行时该怎么办?
grep
ls -la
ls -la | grep something