@Stanislaw11

Где можно о таких функциях, как fork, setsid, chdir и других, в C (C++)?

Здравствуйте. Дело в том, что я достаточно долго изучаю C++, но так до сих пор и не понял, как происходит взаимодействие с системой без API. Допустим, я хочу написать демон под *nix. Но ни в одной книге по плюсам, по которой я учился, я не видел об этом ничего. Знаю, то есть такая функция fork, создающая процесс, есть setsid и chdir, но как их использовать и сколько еще таких функций, которые не являются сторонними библиотеками, а являются частью языка? Как мне найти информацию об этих функциях? И имеют ли эти функции чего-нибудь общее с системными вызовами? Заранее спасибо.
  • Вопрос задан
  • 702 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Знаю, то есть такая функция fork, создающая процесс,

Она не просто создает процесс, она клонирует процесс, делает его полную копию от момента вызова (ну не совсем сразу, в качестве оптимизации все страницы памяти используемые процессом вызывающим fork помечаются для копирования при записи)

сколько еще таких функций, которые не являются сторонними библиотеками, а являются частью языка?

Они не являются частью языка, это системное API. Конкретно fork находится в библиотеке unistd и является частью системного API Posix. Скажем в windows api полных аналогов fork нет, там все чуть по другому. Приходится обходиться CreateProcess или трэдами.

И имеют ли эти функции чего-нибудь общее с системными вызовами?

Да, это они и есть, system call, функции ядра.

словом, почитайте Таненбаума
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы