我最近偶然发现了一个叫做烟斗(所有小写字母)和叉子(也都是小写字母)的东西。显然,管道“是一种将一个过程的标准输出连接到另一个过程的标准输入的方法”。我不明白的是过程的标准输入输出是什么意思。我已经知道函数可以调用其他函数并使用它们返回的值,所以管道有什么特别之处,为什么我们需要管道?我从来没有在我的C / C ++书籍中遇到过这些,这有什么神秘之处?在两个应用程序之间进行通信的简单方法(我在这里没有使用“进程”一词)是一个应用程序创建一个文件,调用另一个应用程序并让它打开该文件并处理其数据并创建一个新的结果文件而不是自行终止。比原始应用程序可以继续处理并从结果文件中读取并删除它首先创建的文件。这是两个应用程序进行通信的简单方法,我认为在.fframworks和复杂操作系统时代,这一点必须更加容易吗?
另外,什么是叉子?这是C ++特有的东西吗?我记得在互联网上的某个地方读过,通过使用fork,我们可以从C ++应用程序中打开另一个应用程序。但是,我不知道这种方法的局限性和影响以及它可能带来的任何缺点。为什么我们需要分叉?它做了什么?
我不希望任何人必须写几页信息。我只是想了解这些是什么,它们做了什么,为什么我们需要它们,以及我的C / C ++书怎么没有涵盖这两个?