Ãëàâíàÿ > Îïåðàöèîííûå ñèñòåìû > UNIX PROCTL(3)
|
[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.