Создание процессов в С++11

136
26 мая 2019, 20:20

Пишу программу, используя С++11. Появилась необходимость создать новый процесс. Подскажите, есть аналог функции CreateProcess в С++11 или все же необходимо использовать WinAPI?

Также необходимо создать проекцию файла. Как сделать это в WinAPI знаю, но вот в С++11 не представляю. Как возможно это реализовать?

Answer 1

Стандартная библиотека ориентируется на некую усредненную поддержку ОС, поэтому даже потоки в ней определены упрощенно (например, нет возможности управлять приоритетами потоков). Управление процессами в разных ОС различается гораздо сильнее, поэтому вряд ли возможно вывести какой-то разумный общий API (Boost.Process выглядит как-то сомнительно, да и возможности там очень урезанные). Так что функцией system все и ограничивается (еще _spawn, но это нестандартная).

Та же самая проблема и с файловыми функциями. Из-за требования переносимости стандартная библиотека включает только самые примитивные средства работы с файлами. Даже для обычного асинхронного В/В приходится использовать API системы, а про отображаемые файлы и говорить нечего.

Answer 2

Создание процесса - см. функции spawnxxx, это их работа. Это не стандарт C++11, но POSIX.

А вот проекция файла - этого нет ни в C++, ни в POSIX.

READ ALSO
Какая в C++ альтернатива питоновскому enumerate?

Какая в C++ альтернатива питоновскому enumerate?

Какая в C++ есть альтернатива питоновскому enumerate, чтобы было что-то вроде этого:

118
Как изменить тип проекта в Visual Studio Community 2017?

Как изменить тип проекта в Visual Studio Community 2017?

При создании проекта выбрал пустой проект, тк

155
Для чего нужны данные типы?

Для чего нужны данные типы?

int8_t uint8_t int16_t uint16_t int32_t uint32_t int64_t uint64_t

113
Почему методы класса меняются местами при использовании различных компиляторов?

Почему методы класса меняются местами при использовании различных компиляторов?

Имеется DLL C++ скомпилированная на MSVCПри динимической подгрузке DLL инициализируется фабрика и создает класс который используется дальше

111