在我的计算机科学课程中,我们被教会在C语言中使用子进程和分支,管道和文件描述符等,但我们从未在C ++中做过类似的事情。
您是否使用相同的库,或者C ++是否拥有自己的一些(希望简化的)系统库?
答案 0 :(得分:5)
您描述的事物类型实际上是系统特定的,而不是C特定的。如果你环顾四周,你可能会找到一些包装器,但它们不是C ++标准的一部分(也不是C标准)。
作为一个例子,没有理由在标准C中使用文件描述符。这就是文件struct,fopen,fclose,fread,fwrite等的用途。如果您正在使用文件描述符,那是因为您正在学习操作系统而不是C语言。
答案 1 :(得分:0)
叉,管,执行;父进程,子进程:您正在谈论POSIX。 POSIX标准是用C而不是C ++编写的。除了少数例外,POSIX库函数要么与C标准一致,要么增加它。您可以从C ++调用C函数,因此在符合POSIX的C / C ++系统上可以使用相同的功能。但是,重点是C而不是C ++,因为它是库函数的本机语言,例如fork
,exec
函数族等等。
C ++ 11采用了POSIX和Windows的线程概念,但是重量级的多处理工具,如fork和exec,管道等:基于C语言。
答案 2 :(得分:-1)
没有什么特定于C或C ++ w.r.t进程,子进程等。在C语言编程时可用的内容应该可用于C ++。您始终可以使用可以针对面向对象样式设计的包装类,以及RAII的优点。