Man pages íà ðóññêîì

         

SDGET(3) XENIX System V (21 èþíÿ 1987)


ÈÌß

sdget, sdfree - ïpècoeäèíÿeò è oòcoeäèíÿeò paçäeëÿeìûé ceãìeíò äaííûx

ÑÈÍÒÀÊÑÈÑ

#include <sys/sd.h>

char *sdget (path, flags, size[, mode]) char *path; int flags, mode; long size;

int sdfree (addr) char *addr;

ÎÏÈÑÀÍÈÅ

Sdget ïpècoeäèíÿeò paçäeëÿeìûé ceãìeíò äaííûx ê ïpocòpaícòây äaííûx òeêyùeão ïpoöecca. Ceãìeíò çaäaeòcÿ èìeíeì path. Bûïoëíÿeìûe äeécòâèÿ oïpeäeëÿþòcÿ apãyìeíòoì flags, êoòopûé còpoèòcÿ ëoãè÷ecêèì cëoæeíèeì cëeäyþùèx ôëaãoâ:

SD_RDONLY Ïpècoeäèíèòü ceãìeíò òoëüêo äëÿ ÷òeíèÿ.

SD_WRITE Ïpècoeäèíèòü ceãìeíò äëÿ ÷òeíèÿ è çaïècè.

SD_CREAT Ecëè ceãìeíò cyùecòâyeò è íe ècïoëüçyeòcÿ (íeaêòèâeí), äeécòâèe ýêâèâaëeíòío coçäaíèþ ïycòoão ceãìeíòa. Èía÷e ceãìeíò coçäaeòcÿ â cooòâeòcòâèè c size è mode. Çía÷eíèe mode çaäaeò ïpaâa äpyãèx ïpoöeccoâ ïo ÷òeíèþ è çaïècè ýòoão ceãìeíòa. Äoïycòèìû ôyíêöèè, ïpèìeíÿeìûe ê oáû÷íûì ôaéëaì. Ïpaâo âûïoëíeíèÿ ceãìeíòa ëèøeío cìûcëa. Ïocëe coçäaíèÿ ceãìeíò èíèöèaëèçèpyeòcÿ íyëÿìè.

SD_UNLOCK Hecêoëüêo ïpoöeccoâ ìoãyò èìeòü äocòyï ê ceãìeíòy ìeæäy sdenter è sdleave.

Sdfree oòcoeäèíÿeò paçäeëÿeìûé ceãìeíò äaííûx oò òeêyùeão ïpoöecca. Ceãìeíò çaäaeòcÿ aäpecoì ïpècoeäèíeíèÿ addr. Ecëè òeêyùèé ïpoöecc cäeëaë paíee âûçoâ sdenter, ío íe cäeëaë sdleave, ïepeä oòcoeäèíeíèeì ceãìeíòa aâòoìaòè÷ecêè âûïoëíÿeòcÿ sdleave.

Koãäa íe ocòaeòcÿ áoëüøe ïpoöeccoâ, ïpècoeäèíèâøèx äaííûé ceãìeíò, coäepæèìoe ceãìeíòa ïepecòaeò cyùecòâoâaòü è íè oäèí ïpoöecc íe ìoæeò ïpècoeäèíèòü ceãìeíò áeç coçäaíèÿ eão ïocpeäcòâoì sdget c ôëaãoì SD_CREAT. B errno çaíocèòcÿ êoä oøèáêè EEXIST, ecëè ïpoöecc ïûòaeòcÿ coçäaòü paçäeëÿeìûé ceãìeíò äaííûx, êoòopûé yæe cyùecòâyeò è ècïoëüçyeòcÿ. B errno çaíocèòcÿ êoä oøèáêè ENOTNAM, ecëè ïpoöecc ïpèìeíÿeò sdget ê ôaéëy, êoòopûé cyùecòâyeò, ío íe èìeeò òèï paçäeëÿeìûx äaííûx.

ÇAÌE×AÍÈß

Ècïoëüçoâaíèe ôëaãa SD_UNLOCK èìeeò cìûcë â cècòeìe c cooòâeòcòâyþùeé aïïapaòíoé ïoääepæêoé.

B cëy÷ae 286 ïpoöeccopa sdget è äpyãèe oïepaöèè c paçäeëÿeìûìè ceãìeíòaìè äaííûx cëeäyeò ïpèìeíÿòü òoëüêo äëÿ áoëüøoé ìoäeëè ïaìÿòè. Ïpoãpoaììû c ìaëoé è cpeäíeé ìoäeëÿìè, ïûòaþùèecÿ ècïoëüçoâaòü paçäeëÿeìûe ceãìeíòû äaííûx, íaòaëêèâaþòcÿ ía íexâaòêy ïaìÿòè. Aïïapaòypa 286 ïpoöeccopa íe ïoçâoëÿeò â cëy÷ae ìaëoé ìoäeëè peaëèçoâaòü paçäeëÿeìûe ceãìeíòû äaííûx, ïpeäíaçía÷eííûe òoëüêo äëÿ ÷òeíèÿ. Oäíaêo, òaêèe ceãìeíòû peaëèçyþòcÿ â áoëüøoé ìoäeëè.

B cëy÷ae 386 ïpoöeccopa aäpecíoe ïpocòpaícòâo 32-áèòoâoe è paçäeëÿeìûe ceãìeíòû äaííûx ìoãyò ècïoëüçoâaòücÿ áeç oãpaíè÷eíèé, câoécòâeííûx 286 ïpoöeccopy.

sdget aâòoìaòè÷ecêè yâeëè÷èâaeò ãpaíèöy ceãìeíòa äaííûx, ycòaíaâëèâaÿ ee cpaçy ïocëe paçäeëÿeìoão ceãìeíòa äaííûx. Ýòo âoçäeécòâyeò ía ïocëeäyþùèe âûçoâû sbrk è brk, êoòopûe ïûòaþòcÿ âoccòaíoâèòü ïpeæíþþ ãpaíèöy. B ÷acòíocòè, ïoïûòêa âoccòaíoâèòü ãpaíèöy, êoòopaÿ áûëa äo âûçoâa sdget, ïpèâoäèò ê oøèáêe.

Ýòè cpeäcòâa cïeöèôè÷íû äëÿ XENIX è ìoãyò oòcyòcòâoâaòü â äpyãèx peaëèçaöèÿx UNIX. Ïpoãpaììû, ècïoëüçyþùèe ýòè ôyíêöèè, äoëæíû êoìïoíoâaòücÿ c ôëaãoì -lx.

Boçâpaùaeìoe çía÷eíèe



Ñîäåðæàíèå ðàçäåëà