BRKCTL(3)
BRKCTL(3)
XENIX System V (21 èþíÿ 1987)
ÈÌß
brkctl - paçìeùaeò äaííûe â yäaëeííoì ceãìeíòe
ÑÈÍÒÀÊÑÈÑ
#include <sys/brk.h>
char far *brkctl (command, increment, ptr) int command; long increment; char far *ptr;
ÎÏÈÑÀÍÈÅ
Cècòeìíûé âûçoâ brkctl âûäeëÿeò èëè ocâoáoæäaeò ïaìÿòü â äoïoëíèòeëüíûx ceãìeíòax äaííûx â cëy÷ae ìaëoé èëè cpeäíeé ìoäeëè pacïpeäeëeíèÿ ïaìÿòè. Äëÿ òoão, ÷òoáû êoìïèëÿòop Cè ìoã ècïoëüçoâaòü âoçâpaùaeìûe çía÷eíèÿ â ïpoãpaììax ìaëoé è cpeäíeé ìoäeëè, brkctl äoëæeí âoçâpaùaòü äëèííûé (far) yêaçaòeëü. Ïpè ècïoëüçoâaíèè oïècaòeëÿ far â ïpoãpaììax êoìïèëÿöèÿ äoëæía âûïoëíÿòücÿ c ôëaãoì -Me ïpè ìaëoé ìoäeëè è c ôëaãoì -Mme ïpè cpeäíeé.
Apãyìeíò command ìoæeò èìeòü oäío èç cëeäyþùèx çía÷eíèé: BR_ARGSEG, BR_NEWSEG èëè BR_IMPSEG.
increment ÿâëÿeòcÿ äëèííûì ÷ècëoì co çíaêoì. Ïpè âoçìoæíocòè oí äoëæeí áûòü ìeíüøe 64K; ecëè oí oòpèöaòeëeí, eão aácoëþòíoe çía÷eíèe äoëæío áûòü ìeíüøe cyììû äëèí âcex yäaëÿeìûx ceãìeíòoâ ïëþc ïaìÿòü, âûäeëeííaÿ â áëèæíeì ceãìeíòe ïocëe coçäaíèÿ ïpoöecca.
ptr ècïoëüçyeòcÿ òoëüêo, ecëè command paâeí BR_ARGSEG.
Ecëè increment ïoëoæèòeëeí, brkctl âoçâpaùaeò äëèííûé yêaçaòeëü ía âûäeëeííûé y÷acòoê ïaìÿòè; âûäeëÿeòcÿ, ïo êpaéíeé ìepe, uncrement áaéòoâ.
Ecëè apãyìeíò command paâeí BR_IMPSEG è oòpèöaòeëüíûé increment âûçûâaeò ocâoáoæäeíèe oäíoão èëè íecêoëüêèx ceãìeíòoâ, âoçâpaùaeìoe çía÷eíèe ïpèíaäëeæèò ïocëeäíeìy èç ocòaâøèxcÿ ceãìeíòoâ. BR_IMPSEG èìeeò â âèäy ècïoëüçoâaíèe ïocëeäíeão ceãìeíòa äaííûx. Heçaâècèìo oò òoão, èìeeò ïpoöecc ìaëyþ èëè cpeäíþþ ìoäeëü ïaìÿòè è èìeeò â äaííûé ìoìeíò òoëüêo oäèí ceãìeíò äaííûx, ïoëoæèòeëüíûé increment, ïepeïoëíÿþùèé ïocëeäíèé ceãìeíò äaííûx, âûçûâaeò coçäaíèe íoâoão ceãìeíòa.
Ecëè apãyìeíò command paâeí BR_ARGSEG, aácoëþòíoe çía÷eíèe oòpèöaòeëüíoão increment íe äoëæío ïpeâûøaòü äëèíû ceãìeíòa. Apãyìeíò ptr äoëæeí áûòü äëèííûì yêaçaòeëeì íeçaâècèìo oò ìoäeëè ïaìÿòè.
Ecëè apãyìeíò command paâeí BR_NEWSEG, increment íe ìoæeò áûòü oòpèöaòeëüíûì. Bûäeëeíèe ïaìÿòè âceãäa ïpoècxoäèò oò ía÷aëa íoâoão ceãìeíòa.