![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
RasenHerz |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
вот код с комментариями (основную часть не имеющую отношения к делу опустил):
совсем не пойму, почему компилятор не может найти ф-цию clone()! такая же ерунда и с exec(). вроде подключил все необходимые заголовочные файлы. может кто сталкивался с такой проблемой? |
|||
|
||||
kirjanov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2006 Где: Dark wood of erro r Репутация: 3 Всего: 15 |
Насколько мне известно, (поправте если что), в ядре для создания процессов используется функция do_fork, которая вызывается из функций sys_fork, sys_vfork и sys_clone. Для создания котекста процесса в ядре существуют аппаратно-зависимый интерфейс в виде функции:
То же дело обстоит с функцией exec и соответствующим ей вызовом sys_execve. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
есть еще более обобщенная функция kthread_create() из kernel/kthread.c которая позволяет кроме всего прочего присвоить символьный идентификатор порожденному процессу и связать его с определенным процессором
да, do_execve() но т. к она (так же как и do_fork()) не экспортируется, отобразить исполняемый файл/библиотеку не удасться -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
kirjanov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2006 Где: Dark wood of erro r Репутация: 3 Всего: 15 |
Что и не удивительно ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
kirjanov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2006 Где: Dark wood of erro r Репутация: 3 Всего: 15 |
Мое мнение, что эта функция относится в кухне подсистемы управления процессам, и не должна использоваться загружаемыми модулями.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
именно по поводу do_fork() не согласен она позволила бы более гибко создавать процессы kernel_thread() и kthread_create() довольно абстрактны -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
RasenHerz |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
а в каком заголовочном файле декларирована sys_clone()??? в linux/shed.h ее нет...
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
RasenHerz,
arch/<arch>/kernel/process.c asm/unistd.h -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
kirjanov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2006 Где: Dark wood of erro r Репутация: 3 Всего: 15 |
RasenHerz,
я не открываю Америку, но в директории с исходным кодом можно, например, набирать grep -nr "some text to search" . Помогает ![]() |
|||
|
||||
RasenHerz |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
кто ж знал что она не в *.h файле )))
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
RasenHerz |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
есть прототип только для powerpc. я уже сам написал ф-цию создающую дочерний процесс ( и без sys_fork()). тема закрыта.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |