В моей программе по информатике нас учили работать с дочерними процессами, вилками, каналами, дескрипторами файлов и т. Д. В C, но мы никогда не делали сравнимых вещей в C ++.
Используете ли вы одни и те же библиотеки или C ++ имеет некоторые (надеюсь, упрощенные) системные библиотеки?
Типы вещей, которые вы описали, на самом деле специфичны для системы, а не для C. Если вы оглянетесь вокруг, вы сможете найти для них некоторые обертки, но они не являются частью стандарта C ++ (или стандарта C).
В качестве примера, нет никакой причины использовать файловые дескрипторы в стандартном C. Это то, для чего предназначены файловая структура, fopen, fclose, fread, fwrite и т. Д. Если вы используете файловые дескрипторы, это потому, что вас учат не операционной системе C, а об операционной системе.
Вилка, труба, Exec; родительские процессы, дочерние процессы: вы говорите о POSIX. Стандарт POSIX написан на языке C, а не C ++. За некоторыми исключениями, функции библиотеки POSIX либо соответствуют стандарту C, либо дополняют его. Вы можете вызывать функции C из C ++, поэтому эта же функциональность доступна в POSIX-совместимой системе C / C ++. Тем не менее, основное внимание уделяется C, а не C ++, потому что это родной язык для библиотечных функций, таких как fork
, exec
семейство функций и тд.
В C ++ 11 принята концепция потоков от POSIX и Windows, но такие тяжелые многопроцессорные средства, как fork и exec, pipe и т. Д., Основаны на C.
Нет ничего конкретного для процессов C или C ++ с w.r.t, дочерних процессов и т. Д. То, что доступно во время программирования на C, должно быть доступно для C ++. Вы всегда можете использовать класс-оболочку, который может быть разработан для объектно-ориентированного стиля и для преимуществ RAII.