Server for Information Technologies óÅÒ×ÅÒ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ
ãÅÎÔÒÏÍ éÎÆÏÒÍÁÃÉÏÎÎÙÈ ôÅÈÎÏÌÏÇÉÊ
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
óÅÒ×ÅÒ ÓÏÄÅÒÖÉÔ ÍÏÒÅ(!) ÁÎÁÌÉÔÉÞÅÓËÏÊ ÉÎÆÏÒÍÁÃÉÉ CIT Forum CD-ROM

PROCTL(3)
XENIX System V (21 ÉÀÎÑ 1987)

éíñ
proctl - yÐpa×ÌÑeÔ aËÔÉ×ÎÙÍÉ ÐpoÃeccaÍÉ ÉÌÉ ÇpyÐÐaÍÉ ÐpoÃecco×

óéîôáëóéó

	#include <sys/proctl.h>
	
	proctl (pid, command, arg)
	int pid, command;
	char *arg;

ïðéóáîéå
Proctl ×ÙÐoÌÎÑeÔ ÄeÊcÔ×ÉÑ c aËÔÉ×ÎÙÍÉ ÐpoÃeccaÍÉ ÉÌÉ ÇpyÐÐaÍÉ ÐpoÃecco×. OÎa ÉÍeeÔ ÔoÔ Öe ÆopÍaÔ, ÞÔo É ÆyÎËÃÉÑ ioctl(S), Îo × ËaÞecÔ×e Ðep×oÇo apÇyÍeÎÔa ×ÍecÔo ÎoÍepa oÔËpÙÔoÇo ÆaÊÌa ÉcÐoÌØÚyeÔ ID ÐpoÃecca pid.

Command ÐocpeÄcÔ×oÍ cÉÍ×oÌÉÞecËoÇo aÎaÌoÇa ÃeÌoÇo ÞÉcÌa ÚaÄaeÔ ×ÙÐoÌÎÑeÍoe ÄeÊcÔ×Ée. Arg Ñ×ÌÑeÔcÑ yËaÚaÔeÌeÍ Îa cÔpyËÔypy ÄaÎÎÙx, oÐpeÄeÌÑÀÝyÀ ÐapaÍeÔpÙ, c×ÑÚaÎÎÙe c command.

EcÌÉ pid ÂÌoØÛe 0, command ×oÚÄeÊcÔ×yeÔ Îa ÐpoÃecc, ÞeÊ ID pa×eÎ pid. Pid ÍoÖeÔ ÂÙÔØ pa×eÎ 1.

EcÌÉ pid pa×eÎ 0, command ×oÚÄeÊcÔ×yeÔ Îa ×ce ÐpoÃeccÙ (ËpoÍe ÐpoÃecco× c ID 0 É 1), ×xoÄÑÝÉe × Ôy Öe ÇpyÐÐy ÐpoÃecco×, ÞÔo É ÔeËyÝÉÊ ÐpoÃecc.

EcÌÉ pid pa×eÎ -1 É ÜÆÆeËÔÉ×ÎÙÊ ÐoÌØÚo×aÔeÌØcËÉÊ ID ÔeËyÝeÇo ÐpoÃecca Îe ÐpÉ×ÉÌeÇÉpo×aÎÎÙÊ, command ×oÚÄeÊcÔ×yeÔ Îa ×ce ÐpoÃeccÙ (ËpoÍe ÐpoÃecco× c ID 0 É 1), ÞeÊ peaÌØÎÙÊ ÐoÌØÚo×aÔeÌØcËÉÊ ID pa×eÎ ÜÆÆeËÔÉ×ÎoÍy ÐoÌØÚo×aÔeÌØcËoÍy ID ÔeËyÝeÇo ÐpoÃecca.

EcÌÉ pid pa×eÎ -1 É ÜÆÆeËÔÉ×ÎÙÊ ÐoÌØÚo×aÔeÌØcËÉÊ ID ÔeËyÝeÇo ÐpoÃecca ÐpÉ×ÉÌeÇÉpo×aÎÎÙÊ, command ×oÚÄeÊcÔ×yeÔ Îa ×ce ÐpoÃeccÙ (ËpoÍe ÐpoÃecco× c ID 0 É 1).

EcÌÉ pid oÔpÉÃaÔeÌeÎ, Îo Îe pa×eÎ -1, command ×oÚÄeÊcÔ×yeÔ Îa ×ce ÐpoÃeccÙ, ×xoÄÑÝÉe × ÇpyÐÐy c ID, pa×ÎÙÍ aÂcoÌÀÔÎoÍy ÚÎaÞeÎÉÀ pid.

Proctl a×apÉÊÎo Úa×epÛaeÔcÑ, ecÌÉ ×ÙÐoÌÎÑeÔcÑ xoÔÑ ÂÙ oÄÎo ÉÚ cÌeÄyÀÝÉx ycÌo×ÉÊ:
[EINVAL] Command ÉÌÉ arg ÎeËoppeËÔÎÙ.
[EPERM] üÆÆeËÔÉ×ÎÙÊ ÐoÌØÚo×aÔeÌØcËÉÊ ID ÔeËyÝeÇo ÐpoÃecca Îe ÐpÉ×ÉÌeÇÉpo×aÎÎÙÊ É ÎÉ oÎ, ÎÉ peaÌØÎÙÊ ÐoÌØÚo×aÔeÌØcËÉÊ ID Îe co×ÐaÄaÀÔ c ÜÆÆeËÔÉ×ÎÙÍ ÉÌÉ peaÌØÎÙÍ ÐoÌØÚo×aÔeÌØcËÉÍ ID ÐpoÃecca, ËoÔopoÍy aÄpeco×aÎa command.
[ENOMEM] HeÄocÔaÔoÞÎo ÐaÍÑÔÉ.
[EFAULT] AÄpec, ÚaÄaÎÎÙÊ arg, ×ÙxoÄÉÔ Úa ÐpeÄeÌÙ aÄpecÎoÇo ÐpocÔpaÎcÔ×a ÐpoÃecca.

OÇpaÎÉÞeÎÉÑ Ðo ÐaÍÑÔÉ
BÙÚo× exec(3) a×apÉÊÎo Úa×epÛaeÔcÑ, ecÌÉ × oÂÌacÔÉ c×oÐÉÎÇa Îe oËaÚÙ×aeÔcÑ ÄocÔaÔoÞÎoÇo ÍecÔa. üÔo oÇpaÎÉÞeÎÉe ÍoÖeÔ ÂÙÔØ cÎÑÔo ÉcÐoÌØÚo×aÎÉeÍ cÌeÄyÀÝÉx ÚÎaÞeÎÉÊ apÇyÍeÎÔa command ÆyÎËÃÉÉ proctl:
PRHUGEX ðoÍeÞaeÔ ÐpoÃecc ËaË HUGE, ÞÔo ÐoÚ×oÌÑeÔ eÍy ×ÙÐoÌÎÑÔØ ÐpoÇpaÍÍÙ ÄaÖe, ecÌÉ oÎÉ Ðpe×ÙÛaÀÔ ÄocÔyÐÎÙÊ oÂßeÍ oÂÌacÔÉ c×oÐÉÎÇa. üÆÆeËÔÉ×ÎÙÊ ÐoÌØÚo×aÔeÌØcËÉÊ ID ÐoÍeÞaÀÝeÇo ÐpoÃecca ÄoÌÖeÎ ÂÙÔØ ÐpÉ×ÉÌeÇÉpo×aÎÎÙÍ, HUGE ÐpoÃeccÙ ÂÌoËÉpyÀÔcÑ × oÐepaÔÉ×ÎoÊ ÐaÍÑÔÉ, ÞÔoÂÙ ÉÚÂeÖaÔØ c×oÐÉÎÇa. ðpoÃecc, ÐoÍeÞeÎÎÙÊ ËaË HUGE, Îo Îe Ðpe×ÙÛaÀÝÉÊ ÄocÔyÐÎoÇo oÂßeÍa oÂÌacÔÉ c×oÐÉÎÇa, ×eÄeÔ ceÂÑ oÂÙÞÎÙÍ oÂpaÚoÍ, Îo Îe ÍoÖeÔ ÂÙÔØ ÐpeoÂpaÚo×aÎ × ÂÌoËÉpo×aÎÎÙÊ ÐpoÃecc.
PRNORMX ðoÍeÞaeÔ ÐpoÃecc ËaË ÎecÐocoÂÎÙÊ ×ÙÚÙ×aÔØ c ÐoÍoÝØÀ exec(3) HUGE ÐpoÇpaÍÍÙ. TaËyÀ ÐoÍeÔËy ÍoÖeÔ cÄeÌaÔØ ÌÀÂoÊ ÐoÌØÚo×aÔeÌØ. EcÌÉ ÄeÌaeÔcÑ ÐoÐÙÔËa ÐoÍeÔÉÔØ ÔaËÉÍ oÂpaÚoÍ ÐpoÃecc, ËoÔopÙÊ yÖe Îe ÐoÍeÝaeÔcÑ × oÂÌacÔØ c×oÐÉÎÇa, proctl Úa×epÛaeÔcÑ c oÛÉÂËoÊ EINVAL.

CÌeÄyÀÝÉÊ ÆpaÇÍeÎÔ ËoÄa ÐoÚ×oÌÑeÔ ÐpoÃeccy ×ÙÐoÌÎÑÔØcÑ ÄaÖe, ecÌÉ ÄÌÑ ÎeÇo ÎeÔ ÍecÔa × oÂÌacÔÉ c×oÐÉÎÇa:

	if(argc<2) {
	     fputs("usage: runbig command arg ...\n",stderr);
	     exit(2);
	}
	argv[argc]=0;
	if(proctl(getpid(),PRHUGEX,(char *)0)<0) {
	     perror("runbig");
	     exit(1);
	}

BOú÷PAýAEíOE úîAþEîéE
B cÌyÞae oÛÉÂËÉ ×oÚ×paÝaeÔcÑ ÚÎaÞeÎÉe -1 É × errno ÚaÎocÉÔcÑ ËoÄ oÛÉÂËÉ.

óí. ôáëöå
exec(3), ioctl(3), kill(3)

úAíEþAîéñ
ðpoÇpaÍÍÙ, ÉcÐoÌØÚyÀÝÉe ÜÔÉ ÆyÎËÃÉÉ, ÄoÌÖÎÙ ËoÍÐoÎo×aÔØcÑ c ÆÌaÇoÍ -lx.
Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT