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

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.

BoÚ×paÝaeÍoe ÚÎaÞeÎÉe
brkctl ÐoÞÔÉ ×ceÇÄa ×oÚ×paÝaeÔ ÄÌÉÎÎÙÊ yËaÚaÔeÌØ × ËaÞecÔ×e aÄpeca ×ÙÄeÌeÎÎoÇo yÞacÔËa ÐaÍÑÔÉ. B cÌyÞae oÛÉÂËÉ ×oÚ×paÝaeÔcÑ (char far *)-1.

EcÌÉ increment ÂoÌØÛe 0, ×oÚ×paÝaeÍoe ÚÎaÞeÎÉe Ñ×ÌÑeÔcÑ yËaÚaÔeÌeÍ Îa ÎaÞaÌo ×ÙÄeÌeÎÎoÇo yÞacÔËa ÐaÍÑÔÉ.

EcÌÉ increment ÍeÎØÛe ÉÌÉ pa×eÎ ÎyÌÀ, ×oÚ×paÝaeÍoe ÚÎaÞeÎÉe ÜÔo yËaÚaÔeÌØ Îa Ðep×ÙÊ Îe ÐpÉÎaÄÌeÖaÝÉÊ ÐpoÃeccy ÂaÊÔ (oÂÙÞÎo ÜÔo aÄpec oc×oÂoÖÄeÎÎoÇo yÞacÔËa ÐaÍÑÔÉ). EcÌÉ ÐocÌeÄÎÉÊ ÉÚ ocÔa×ÛÉxcÑ ceÇÍeÎÔo× ÐoÌoÎ (eÇo ÄÌÉÎa cocÔa×ÌÑeÔ po×Îo 64K), ×oÚ×paÝaeÍoe ÚÎaÞeÎÉe ÄoÌÖÎo yËaÚÙ×aÔØ ÎaÞaÌo cÌeÄyÀÝeÇo ceÇÍeÎÔa (ËoÔopÙÊ Îe oÂÑÚaÎ cyÝecÔ×o×aÔØ).

B ÃeÌoÍ, ÄeÊcÔ×ÉÑ É ×oÚ×paÝaeÍÙe ÚÎaÞeÎÉÑ ÍoÇyÔ ÂÙÔØ cÌeÄyÀÝÉÍÉ:

	brkctl (BR_ARGSEG, 0, ptr)
	               CooÂÝaeÔ ÐocÌeÄÎÉÊ aÄpec × yËaÚaÎÎoÍ
	               ceÇÍeÎÔe.
	
	brkctl (BR_ARGSEG, increment, ptr)
	               õ×eÌÉÞÉ×aeÔ yËaÚaÎÎÙÊ ceÇÍeÎÔ.
	
	brkctl (BR_NEWSEG, 0)
	               CoÚÄaeÔ Îo×ÙÊ ceÇÍeÎÔ c ÎyÌe×oÊ ÄÌÉÎoÊ.
	
	brkctl (BR_NEWSEG, increment)
	               CoÚÄaeÔ Îo×ÙÊ ceÇÍeÎÔ c ÄÌÉÎoÊ, pa×ÎoÊ
	               increment.
	
	brkctl (BR_IMPSEG, 0)
	               CooÂÝaeÔ ÐocÌeÄÎÉÊ aÄpec × ÐocÌeÄÎeÍ ceÇÍeÎÔe
	               ÄeÎÎÙx. MoÖeÔ oc×oÂoÄÉÔØ ÎecËoÌØËo ceÇÍeÎÔo×.
	
	brkctl (BR__IMPSEG, increment)
	               õ×eÌÉÞÉ×aeÔ ÐocÌeÄÎÉÊ ceÇÍeÎÔ. B cÌyÞae
	               ÂoÌØÛoÊ ÍoÄeÌÉ ÐaÍÑÔÉ (ÉÌÉ ÍaÌoÊ É cpeÄÎeÊ c
	               ÎecËoÌØËÉÍÉ ceÇÍeÎÔaÍÉ ÄaÎÎÙx) ÍoÖeÔ coÚÄaÔØ
	               Îo×ÙÊ ceÇÍeÎÔ.

óí. ôáëöå
cc(1), ld(1), machine(5), malloc(3), sbrk(3)

úáíåþáîéñ
CÉcÔeÍÎÙÊ ×ÙÚo× brkctl cÌeÄyeÔ ÉcÐoÌØÚo×aÔØ ÔoÌØËo ÄÌÑ ÄÉÎaÍÉÞecËoÇo pacÐpeÄeÌeÎÉÑ ÐaÍÑÔÉ × ÍaÌoÊ ÉÌÉ cpeÄÎeÊ ÍoÄeÌÉ ÐaÍÑÔÉ. B ÄpyÇÉx cÌyÞaÑx cÌeÄyeÔ ÐpÉÍeÎÑÔØ sbrk(3), malloc(3) É ÄpyÇÉe cÔaÎÄapÔÎÙe cpeÄcÔ×a UNIX. æyÎËÃÉoÎÉpo×aÎÉe brkctl ÍoÖeÔ ÉÚÍeÎÉÔØcÑ × ÐocÌeÄyÀÝÉx peaÌÉÚaÃÉÑx cÉcÔeÍÙ.

brkctl × ÎacÔoÑÝee ×peÍÑ ÄocÔyÐeÎ ÔoÌØËo × peaÌÉÚaÃÉÑx XENIX, ÐoÄÄepÖÉ×aÀÝÉx peÖÉÍ ÚaÝÉÔÙ (protected mode).

HeÚa×ÉcÉÍo oÔ ÍoÄeÌÉ ceÇÍeÎÔ ÄaÎÎÙx, oÂpaÝeÎÉe Ë ËoÔopoÍy ocyÝecÔ×ÌÑeÔcÑ Ðo ËopoÔËoÍy yËaÚaÔeÌÀ, ÄoÌÖeÎ ÂÙÔØ Ðep×ÙÍ ceÇÍeÎÔoÍ ÄaÎÎÙx.

BÙÚo× brkctl c BR_IMPSEG É oÔpÉÃaÔeÌØÎÙÍ incremet Îe ÍoÖeÔ ÐpÉÍeÎÑÔØcÑ Ë paÚÄeÌÑeÍoÍy ceÇÍeÎÔy ÉÎcÔpyËÃÉÊ.
Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT