0

在我的计算机科学程序中,我们被教导在 C 中使用子进程、分叉、管道和文件描述符等,但我们从未在 C++ 中做过类似的事情。

你使用相同的库,还是 C++ 有一些(希望是简化的)自己的系统库?

4

3 回答 3

5

您描述的事物类型实际上是系统特定的,而不是 C 特定的。如果您环顾四周,您可能会找到一些包装器,但它们不是 C++ 标准(也不是 C 标准)的一部分。

例如,没有理由在标准 C 中使用文件描述符。这就是文件结构、fopen、fclose、fread、fwrite 等的用途。如果你使用文件描述符,那是因为你被教导的是操作系统而不是 C。

于 2012-09-30T02:43:53.977 回答
0

分叉、管道、执行;父进程,子进程:您在谈论 POSIX。POSIX 标准是用 C 而不是 C++ 编写的。除了少数例外,POSIX 库函数要么与 C 标准一致,要么对其进行扩充。您可以从 C++ 调用 C 函数,因此在符合 POSIX 的 C/C++ 系统上也可以使用相同的功能。但是,重点是 C 而不是 C++,因为它是库函数(例如函数族等)的本地fork语言exec

C++11 采用了 POSIX 和 Windows 的线程概念,但重量级的多处理东西,如 fork 和 exec、管道等:这是基于 C 的。

于 2012-09-30T04:01:11.427 回答
-1

没有什么特定于 C 或 C++ wrt 进程、子进程等。在 C 中编程时可用的内容应该可用于 C++。您始终可以使用可设计用于面向对象风格和 RAII 优势的包装类。

于 2012-09-30T03:55:48.150 回答