|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 04 Jan 2006 22:08:30 To : Igor Nikolaev Subject : Re: 38.000 попугаев -------------------------------------------------------------------------------- Igor Nikolaev <Igor.Nikolaev@f266.n5030.z2.fidonet.org> wrote: IN> John Lepikhin <John_Lepikhin@f156.n5070.z2.fidonet.org> wrote: >> $ time for i in 1 2; do sleep $i; done >> real 0m3.018s >> user 0m0.001s >> sys 0m0.013s IN> IN> Опаньки! Мы в ru.linux. IN> В качестве Корн shell у нас bash. IN> В качестве time http://directory.fsf.org/GNU/time.html Hасколько я понимаю, в линуксовом bash (а также в zsh) time - это тоже встроенная команда. Видно по формату выдачи: утилита /usr/bin/time выдаёт время в виде 0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+183minor)pagefaults 0swaps IN> И, что характерно, time прав. Он нигде не подписывался IN> работать shell'ом. Он fork'ается, в сыне вызывает IN> execvp (cmd[0], cmd); IN> и отец ждёт пока это безобразие закончится. Тот time, который встроенный в bash, вызывает getrusage() до и после команды. Точнее, два раза по паре - getrusage(RUSAGE_SELF) и getrusage(RUSAGE_CHILDREN). Так что никаких форков ему не требуется. -- Eugene Berdnikov --- ifmail v.2.15dev5.3 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/365114229525.html, оценка из 5, голосов 10
|