mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

      WAIT(1)                                                 WAIT(1)

      НАЗВАНИЕ
              wait - ожидание завершения процесса

      СИНТАКСИС
              wait  [идентификатор_процесса]

      ОПИСАНИЕ
              Команда wait ждет завершения фонового процесса (то есть
              процесса, запущенного посредством &) с заданным иденти-
              фикатором и возвращает код его завершения. Если иденти-
              фикатор_процесса не указан, ожидается  завершение  всех
              активных в настоящий момент фоновых процессов;  возвра-
              щаемый код при этом получается нулевым.

              Shell сам выполняет команду wait, без  создания  нового
              процесса.

      СМ. ТАКЖЕ
              sh(1).

      ОГРАНИЧЕНИЯ
              Если Вы получили сообщение о чрезмерном числе процессов
              (cannot fork, too many processes),  с  помощью  команды
              wait(1) дождитесь завершения  фоновых  процессов.  Если
              улучшение не наступило, вероятно, переполнилась систем-
              ная таблица процессов или у Вас слишком много  активных
              приоритетных процессов. (Имеется ограничение  на  число
              процессов, ассоциированных с каждым пользователем, и на
              общее число процессов.)

      СЮРПРИЗЫ
              Не все процессы, входящие в конвейер из трех или  более
              фаз, являются сыновьями shell'а, поэтому их  завершения
              нельзя ждать с помощью команды wait.

              Если заданный идентификатор не  относится  к  активному
              процессу, ожидается завершение всех активных в  настоя-
              щий момент фоновых процессов; возвращаемый код при этом
              получается нулевым.



WAIT(2)                                                 WAIT(2)

НАЗВАНИЕ 
	wait - ожидание завершения порожденного процесса

СИНТАКСИС 
        int wait (stat_loc)
        int *stat_loc;

ОПИСАНИЕ 
	В результате выполнения системного вызова wait  процесс
	приостанавливается до тех пор, пока один из непосредст-
	венно  порожденных им процессов не завершится, или пока
	порожденный процесс, который находится в режиме трасси-
	ровки, не остановится при достижении точки  прерывания.
	Преждевременный  выход из системного вызова wait проис-
	ходит, если был получен  сигнал;  если  же  порожденный
	процесс  остановился или завершился раньше вызова wait,
	то возврат происходит немедленно.

	Если аргумент stat_loc не равен 0, то 16  бит  информа-
	ции,  называемые  статусом, помещаются в младшие 16 бит
	слова, на которое указывает stat_loc. С помощью статуса
	можно узнать, приостановлено или  завершено  выполнение
	порожденного  процесса. Если порожденный процесс завер-
	шился, то статус указывает причину  завершения.  Статус
	трактуется следующим образом:

	1.   Если  порожденный процесс приостановлен, старшие 8
	     бит статуса содержат номер сигнала, ставшего  при-
	     чиной приостановки, а младшие 8 бит устанавливают-
	     ся равными 0177.

	2.   Если  порожденный  процесс  завершился посредством
	     системного вызова exit, то младшие 8  бит  статуса
	     будут  равны  0,  а  старшие 8 бит будут содержать
	     младшие 8 бит аргумента, который порожденный  про-
	     цесс   передает   системному   вызову   exit  [см.
	     exit(2)].

	3.   Если порожденный процесс завершился из-за  получе-
	     ния  сигнала, то старшие 8 бит статуса будут равны
	     0, а младшие 8 бит будут содержать номер  сигнала,
	     вызвавшего  завершение  процесса. Кроме того, если
	     младший седьмой бит (бит 0200) равен 1, будет про-
	     изведен дамп оперативной памяти [см. signal(2)].

	Если  родительский процесс завершается без ожидания за-
	вершения порожденных процессов, то для последних  иден-
	тификатор  родительского  процесса становится равным 1.
	Это означает, что процесс инициализации  наследует  по-
	рожденные процессы [см. intro(2)].

	Системный  вызов wait завершается неудачей и происходит
	немедленный возврат, если выполнено следующее условие:

	[ECHILD]    Вызывающий процесс  не  имеет  существующих
		    порожденных  процессов,  завершения которых
		    не ждут.

СМ. ТАКЖЕ 
	exec(2),   exit(2),   fork(2),   intro(2),    pause(2),
	ptrace(2), signal(2).

ПРЕДОСТЕРЕЖЕНИЯ 
	Системный  вызов wait завершается неудачей и его дейст-
	вия не определены, если аргумент stat_loc указывает  за
	пределы отведенного процессу адресного пространства.

	См. также ПРЕДОСТЕРЕЖЕНИЯ в signal(2).

ДИАГНОСТИКА 
	Если  выполнение  системного  вызова  wait  завершилось
	вследствие  получения сигнала, то результат будет равен
	-1, а переменной errno будет присвоено  значение  EINTR
	(прерывание  системного  вызова).  Если wait завершился
	из-за приостановки или завершения порожденного  процес-
	са,  то  результатом  служит идентификатор порожденного
	процесса. В противном случае возвращается -1,  а  пере-
	менной errno присваивается код ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк