смотря как глубоко закопаться в поиск истины
нет
Кто-то выполняет два системных вызова: fork(); exec*(path, param); А можно как-то иначе?
Ну всё, что явно не отцеплено от tty/pts, было запущено из-под tty/pts. Я вот не до конца представляю, есть ли какой-то вообще способ понять, из какого tty/pts была запущена программа, если ей отрубили оригинальные /proc/self/fd/{0,1,2}
Ты хочешь процесс запустить?
всего лишь поясняет то, как создаются новые процессы
Емнип, можно без fork+exec, прямо как на Винде...
ну тут нужно подтверждение твоих слов насколько я знаю, только fork+exec
нуууу технически можно системный вызов clone напрямую
Тогда clone + exec, но вроде clone для тредов скорее используется Для запуска процессов как-то нестандартно, да и зачем
нет не только. fork собственно тоже реализован при помощи системного вызова clone.
опять таки fork это не просто враппер над системнным вызовом, просто ручками реализовывать форк неблагодарное дело
Кажется есть posix_spawn, но он вроде как, не в ядре, по крайней мере на линуксе, но и это не точно
Ну почти так и есть, функция имплементации одна и та же (смотрю на версию 4)
> fork это не просто враппер над системнным вызовом ну это уж надо смотреть что там в сорцах libc
скорее в сорцах ядра, т.к. fork это системный вызов
Тогда я не понимаю что ты имеешь в виду > fork это системный вызов > fork это не просто враппер над системнным вызовом в сорцы ядра как правило лезть излишне, кроме исключительных случаев а оберткой которую ты вызываешь из юзерспейса заведует libc, и возможно она не просто обертка
Либцшный fork вызывает системный вызов sys_fork, который в свою очередь если я правильно помню дергал clone.
В общем посыпаю голову пеплом, у меня слегка каша в голове, потому как последний раз я с этим разбирался ну ооочень давно. глибцшный __libc_fork делает на amd64 системный вызов с кодом 0x38 (56), что соответствует вызову sys_clone
О, вот теперь понятно Мне в libc сорцах лазать не доводилось, слава богам
А libc это ведь библиотека си в сочетании с api самого линукса?
Обсуждают сегодня