Книга: Программирование для Linux. Профессиональный подход
4.5.2. Системный вызов clone()
4.5.2. Системный вызов clone()
Все потоки, создаваемые в одной программе, являются отдельными процессами, которые делят общее адресное пространство и другие ресурсы. Но дочерний процесс, создаваемый с помощью функции fork()
, получает в свое распоряжение копии ресурсов. Как же реализуются процессы первого типа?
В Linux имеется функция clone()
, являющаяся обобщением функций fork()
и pthread_create()
. Она позволяет вызывающему процессу указывать, какие ресурсы он согласен делить с дочерним процессом. Необходимо также задать область памяти, в которой будет расположен стек выполнения нового процесса. Вообще говоря, мы упоминаем функцию clone()
лишь для того, чтобы удовлетворить любопытство читателей. Использовать ее в программах не следует. Создавайте процессы с помощью функции fork()
, а потоки — с помощью функции pthread_create()
.
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC
- Системные вызовы и драйверы устройств
- Определение необходимого системного вызова
- Системные вызовы управления процессорной привязкой
- Вызовы функций
- 2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ
- Другие системные вызовы для управления файлами
- Вызов pipe
- Вызов справки из приложений
- 21.4 Вызовы socket
- Вызов окна программного кода
- ЧАСТЬ 5 УДАЛЕННЫЙ ВЫЗОВ ПРОЦЕДУР