0

我最近偶然发现了一种叫做 pipe(全是小写字母)和 fork(全是小写字母)的东西。显然,管道“是一种将一个进程的标准输出连接到另一个进程的标准输入的方法”。我不明白的是一个进程的标准输入输出在这里是什么意思。我已经知道函数可以调用其他函数并使用它们返回的值,那么管道有什么特别之处,为什么我们需要管道?我在我的 C/C++ 书籍中从未遇到过这些,这是什么奥秘?在两个应用程序之间进行通信的一种简单方法(我在这里没有使用进程一词)是一个应用程序创建一个文件,调用另一个应用程序并让它打开这个文件并处理其数据并创建一个新的结果文件,然后自行终止。原始应用程序可以继续处理并从结果文件中读取并删除它首先创建的文件。这是两个应用程序通信的简单方式,我认为在.Net框架和复杂操作系统的时代,这一定更容易吧?

另外,什么是叉子?它是 C++ 特有的吗?我记得在互联网上的某个地方读到,通过使用 fork,我们可以从 C++ 应用程序中打开另一个应用程序。但是,我不知道这种方法的局限性和影响以及它可能具有的任何缺点。为什么我们需要分叉?它有什么作用?

我不希望任何人都必须写几页信息。我只是想了解这些东西是什么,它们有什么作用,我们为什么需要它们,为什么我的 C/C++ 书没有涵盖这两个?

4

1 回答 1

1

这些是 Unix 系统调用。它们不是 C++ 语言或标准库的一部分,而是特定于类 unix 操作系统。

fork创建一个新进程,而pipe创建一个单向通信通道。pipe 和 fork 经常结合使用,用于进程间通信。

于 2013-10-08T13:54:57.913 回答