">
ÈÌß
sdenter, sdleave - cèíxpoíèçèpyeò äocòyï ê paçäeëÿeìûì
ceãìeíòaì äaííûx
ÑÈÍÒÀÊÑÈÑ
#include <sys/sd.h> int sdenter (addr, flags) char *addr; int flags; int sdleave (addr) char *addr;
ÎÏÈÑÀÍÈÅ
Sdenter ècïoëüçyeòcÿ ïpè ïoïûòêe òeêyùeão ïpoöecca ïoëy÷èòü
äocòyï ê coäepæèìoìy paçäeëÿeìoão ceãìeíòa äaííûx. Apãyìeíò
addr paâeí çía÷eíèþ, âoçâpaùeííoìy ïpeäûäyùèì âûçoâoì
sdget(3). Bûïoëíÿeìoe äeécòâèe oïpeäeëÿeòcÿ apãyìeíòoì
flags, êoòopûé còpoèòcÿ ëoãè÷ecêoé cëoæeíèeì cëeäyþùèx
ôëaãoâ:
Sdleave ècïoëüçyeòcÿ äëÿ yêaçaíèÿ òoão, ÷òo òeêyùèé ïpoöecc çaêoí÷èë ìoäèôèêaöèþ coäepæèìoão paçäeëÿeìoão ceãìeíòa äaííûx.
Moäèôèêaöèè paçäeëÿeìoão ceãìeíòa äaííûx, cäeëaííûe ìeæäy âûçoâaìè sdenter è sdleave, âûïoëíÿþòcÿ êoppeêòío è ìoãyò áûòü y÷òeíû äpyãèìè ïpoöeccaìè. He peêoìeíäyeòcÿ íaäoëão ocòaâëÿòü ceãìeíò ïoä äeécòâèeì âûçoâa sdenter: êaê òoëüêo çaâepøeía òeêyùaÿ paáoòa c ceãìeíòoì, âûçûâaòü sdleave. B ÷acòíocòè, íe peêoìeíäyeòcÿ ìeæäy sdenter è sdleave âûïoëíÿòü cècòeìíûe âûçoâû.
Ecëè ceãìeíò áûë coçäaí áeç ôëaãa SD_UNLOCK, ìeæäy sdenter è sdleave çaïpeùeí cècòeìíûé âûçoâ fork.
Boçâpaùaeìoe çía÷eíèe
B cëy÷ae ycïeøíoão çaâepøeíèÿ âoçâpaùaeòcÿ çía÷eíèe 0.
Èía÷e âoçâpaùaeòcÿ çía÷eíèe -1 è â errno çaíocèòcÿ êoä
oøèáêè. Oøèáêa EINVAL oçía÷aeò, ÷òo ïpoöecc âûçâaë sdenter
c ôëaãoì SD_WRITE, a ceãìeíò yæe ïpècoeäèíeí äpyãèì
ïpoöeccoì c ôëaãoì SD_RDONLY. Oøèáêa ENAVAIL oçía÷aeò, ÷òo â
sdenter yêaçaí ôëaã SD_NOWAIT, a paçäeëÿeìûé ceãìeíò íe
câoáoäeí.
ÇAÌE×AÍÈß
Ýòè 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.