在我的计算机科学程序中,我们被教导在 C 中使用子进程、分叉、管道和文件描述符等,但我们从未在 C++ 中做过类似的事情。
你使用相同的库,还是 C++ 有一些(希望是简化的)自己的系统库?
在我的计算机科学程序中,我们被教导在 C 中使用子进程、分叉、管道和文件描述符等,但我们从未在 C++ 中做过类似的事情。
你使用相同的库,还是 C++ 有一些(希望是简化的)自己的系统库?
您描述的事物类型实际上是系统特定的,而不是 C 特定的。如果您环顾四周,您可能会找到一些包装器,但它们不是 C++ 标准(也不是 C 标准)的一部分。
例如,没有理由在标准 C 中使用文件描述符。这就是文件结构、fopen、fclose、fread、fwrite 等的用途。如果你使用文件描述符,那是因为你被教导的是操作系统而不是 C。
分叉、管道、执行;父进程,子进程:您在谈论 POSIX。POSIX 标准是用 C 而不是 C++ 编写的。除了少数例外,POSIX 库函数要么与 C 标准一致,要么对其进行扩充。您可以从 C++ 调用 C 函数,因此在符合 POSIX 的 C/C++ 系统上也可以使用相同的功能。但是,重点是 C 而不是 C++,因为它是库函数(例如函数族等)的本地fork
语言exec
。
C++11 采用了 POSIX 和 Windows 的线程概念,但重量级的多处理东西,如 fork 和 exec、管道等:这是基于 C 的。
没有什么特定于 C 或 C++ wrt 进程、子进程等。在 C 中编程时可用的内容应该可用于 C++。您始终可以使用可设计用于面向对象风格和 RAII 优势的包装类。