c语言 - 后台的子进程 (ls &)



我正在使用C制作自己的shell,如果我在命令末尾使用&,那么它将在后台运行。因此,为了使它在后台运行,我没有在父元素中使用wait()

我的代码是这样运行的,当我不使用&

-->ls
File1.c file2.c file.txt
-->

在接受下一个命令的用户输入之前打印-->

但是如果我在末尾使用&我刚刚尝试了ls

我的代码是这样的:

-->ls &
-->File1.c file2.c file.txt

我不知道为什么-->符号在下一行不打印在这种情况下。ls执行速度快还是代码问题?

当使用&时,我希望输出看起来像这样

-->ls &
File1.c file2.c file.txt
-->

虽然我既没有看到你的代码也没有看到你使用的平台,但似乎进程是按照不同的顺序调度的,这取决于在后台或前台运行。

如果您想同步进程,您可以建立某种进程间通信或使用确定性调度器。后者无疑是一种过度的、不可行的方法。

我建议等待进程结束或使用管道。

相关内容

  • 没有找到相关文章

最新更新