Жптфтбо 77 SVS об уфбогйй Пзмбчмеойе 1. Фтбоумсгйс Жптфтбо-ртпзтбнн . . . . . . . . . . . . . . 2. Пупвеоопуфй четуйй Жптфтбоб . . . . . . . . . . . . . . 3. Ъбнеюеооще пыйвлй лпнрймсфптб у Жптфтбоб 77 . . . . . . 4. Ччпд/чщчпд об уфбогйй . . . . . . . . . . . . . . . . . 4.0. Урегйжйлбгйс UNIT = un . . . . . . . . . . . . . 4.1. Претбфпт OPEN . . . . . . . . . . . . . . . . . 4.2. Претбфпт OPEN дмс ртйофетб . . . . . . . . . . . 4.3. Претбфпт CLOSE . . . . . . . . . . . . . . . . . 4.4. Оесчощк CLOSE ртй ъбчетыеойй тбвпфщ . . . . . . . 4.5. Претбфпт INQUIRE . . . . . . . . . . . . . . . . 4.6. Претбфптщ рпъйгйпойтпчбойс ч жбкме . . . . . . . 4.6.1. Претбфпт BACKSPACE . . . . . . . . . . . 4.6.2. Претбфпт REWIND . . . . . . . . . . . . 4.6.3. Претбфпт ENDFILE . . . . . . . . . . . . 4.7. Пзтбойюеойс об йурпмшъпчбойе жхолгйк ч урйулби претбфптпч ччпдб-чщчпдб . . . . . . . . . . . . . 5. Дпрпмойфемшоще уфбодбтфоще рпдртпзтбннщ й жхолгйй Жптфтбоб SVS . . . . . . . . . . . . . . . . . . . . . 6. Тбвпфб у вйвмйпфелбнй Жптфтбо-ртпзтбнн . . . . . . . . 7. Учсъш у същлпн C . . . . . . . . . . . . . . . . . . . 1. Фтбоумсгйс Жптфтбо-ртпзтбнн Уфтбоумйтпчбфш й улпнрпопчбфш Жптфтбо-ртпзтбннх нпцоп йъ ТЛ рп обцбфйа F5 F10 (ймй бобмпзйюопк лпнвйобгйй). Жптфтбооще жбкмщ дпмцощ йнефш тбуыйтеойе .for, жбкмщ дмс увптлй - .bld. Теъхмш- фбф фтбоумсгйй рпнеэбефус ч пдопйнеоощк жбкм у тбуыйтеойен .o. Ч урйуле увптлй ретеюйумсафус йнеоб пв®елфощи жбкмпч у хлбъб- ойен тбуыйтеойс .o ймй йнеоб вйвмйпфел. Ьменеофщ урйулб увптлй тбурпмбзбафус ч пдопк ймй оеулпмшлйи уфтплби й ч ртедемби уфтплй тбъдемсафус ртпвембнй. Йнс зпфпчпк ртпзтбннщ рпмхюбефус йъ йнеой жбкмб увптлй пфвтбущчбойен тбуыйтеойс. 2. Пупвеоопуфй четуйй Жптфтбоб 2.1. Дмйоб уфтплй - 120 уйнчпмпч. 2.2. Ъобюбэйи мйфет ч йнеоби ретенеоощи- 31, ч йнеоби пвэйи пвмбуфек - 29, ч йнеоби ртпгедхт - 31. Рп хнпмюбойа фтбоумс- фпт ое тбъмйюбеф впмшыйе й нбмще вхлчщ. Йнеоб нпзхф упуфпсфш фпмшлп йъ вхлч й гйжт, пдоблп еумй ч обюбме ртпзтбннщ ртй- ухфуфчхеф уфтплб $SYSTEM (у ретчпк рпъйгйй), ч йнеоб нпзхф чипдйфш рпдюетлйчбойс. 2.3. Претбфптщ DATA дпмцощ тбурпмбзбфшус уфтпзп рпуме прйуб- ойк. 2.4. Ч фелуфпчщи лпоуфбофби оемшъс хлбъщчбфш лпдщ мйфет ч хз- мпчщи улпвлби. 2.5. Ч претбфптби ччпдб-чщчпдб хуфтпкуфчп 0 ретчпобюбмшоп объ- обюеоп об уфбодбтфощк жбкм ччпдб-чщчпдб, б 1 - об уфбодбтф- ощк жбкм ртпфплпмб. Уйуфенб йофетртефйтхеф * лбл хлбъбойе об хуфтпкуфчп 0. 2.6. Ч Жптфтбое UNIX ведоее чпънпцопуфй претбфптб OPEN, еуфш пфмйюйс ч тбвпфе претбфптпч READ, WRITE (ч юбуфопуфй, ртйъ- облй лпогб ъбрйуй тбурпмбзбафус ч тбъощи неуфби). Лптпюе зп- чптс, ччпд-чщчпд, лбл й умедпчбмп пцйдбфш, пфюбуфй нбыйооп- ъбчйуйн. 2.7. Пфмйюбефус уйофблуйу претбфптпч INCLUDE. Ч Жптфтбое SVS: $INCLUDE йнс_жбкмб (у 1-к рпъйгйй, йнс_жбкмб - веъ лбчщюел). Нблуйнбмшобс чмпцеоопуфш INCLUDE-жбкмпч - 5. 2.8. Ч прйубойй ретенеоощи оемшъс ъбдбчбфш обюбмшощи ъобюеойк. 2.9. Ое упчрбдбеф обвпт уфбодбтфощи жхолгйк. Пфмйюйс ун. ч тбъдеме 5. 2.10. Ртедуфбчмеойе ретенеоощи фйрпч REAL*4 й REAL*8 об уфбо- гйй ое упчнеуфйнще, фп еуфш еумй х юйумб дчпкопк фпюопуфй пфвтпуйфш нмбдыйе тбътсдщ, юйумб пвщюопк фпюопуфй ое рпмх- юйфус. 2.11. Ч Жптфтбое UNIX тбътеыбефус йурпмшъпчбфш ыеуфобдгбфетйю- още лпоуфбофщ, лпфптще ъбдбафус умедхаэйн пвтбъпн: $FC42 Фелуфпчще лпоуфбофщ ъбдбафус лбл пвщюоп (обртйнет, 'ABCD'), оп ч ойи оемшъс йурпмшъпчбфш лпдщ ASCII у хзмпчщнй улпвлбнй (чйдб <43>). Чпънпцощк чщипд йъ рпмпцеойс - ъбчеуфй рбтбнефт у охцощн ъобюеойен й йурпмшъпчбфш дбмее езп, обртйнет: character LOWBR parameter (LOWBR = $23) 2.12. Нпцоп пфлтщфш пдйо жбкм рп дчхн лбобмбн пдопчтенеооп. 2.13. Ое тбътеыео ччпд-чщчпд йъ/ч чохфтеоойе жбкмщ (уфтплй) рп учпвпдопнх жптнбфх (*). 2.14. Дпрхулбефус фпмшлп уфбодбтфощк чйд DO-гйлмб - у нефлпк ч лпоге. 3. Ъбнеюеооще пыйвлй лпнрймсфптб у Жптфтбоб 77 3.1. Еумй гембс ретенеообс йурпмшъпчбоб ч претбфпте чщчпдб у жптнбфпн F ймй E, ее дбмшоекыее йурпмшъпчбойе лбл гемпк ре- тенеоопк оечпънпцоп. 4. Ччпд/чщчпд об уфбогйй 4.0. Урегйжйлбгйс UNIT = un пртедемсеф лбобм, йурпмшъхенщк дмс претбгйк ччпдб-чщчпдб. Un - йдеофйжйлбфпт чоеыоезп ймй чохфтеооезп лбобмб й нпцеф вщфш пд- ойн йъ умедхаэйи: * - уфбодбтфощк лбобм ччпдб-чщчпдб рпмпцйфемшопе гемпе чщтбцеойе - пртедемсеф опнет чоеыоезп жбкмб йдеофйжйлбфпт - йдеофйжйлбфпт уйнчмшопк ретенеоопк, уйнчпмшощк нбууйч, ьменеоф уйнчпмшоп- зп нбууйчб ймй уйнчпмшобс рпдуфтплб Еумй UNIT= прхэеоп, фп урегйжйлбгйс un дпмцоб уфпсфш рет- чпк ч урйуле урегйжйлбгйк. 4.1. Претбфпт OPEN Претбфпт OPEN йурпмшъхефус, юфпвщ пфлтщфш й учсъбфш ух- эеуфчхаэйк жбкм у лбобмпн, упъдбфш жбкм й рпдупедйойфш езп л лбобмх, ймй йънеойфш оелпфптще ибтблфетйуфйлй рпдупедйоеойс лбобмб й жбкмб. Еумй претбфпт OPEN ртйнеосефус л хце пфлтщфпнх жбкмх, ьфпф жбкм ртедчбтйфемшоп ъблтщчбефус. Чйд претбфптб: OPEN (урйупл_урегйжйлбгйк) Ч урйупл_урегйжйлбгйк нпзхф чипдйфш умедхаэйе: [unit=] = un IOSTAT = ios ERR = label FILE = fname STATUS = sta ACCESS = acc FORM = fm RECL = rlen BLANK = blnk BUFFERED = buffered Урйупл_урегйжйлбгйк дпмцео упдетцбфш тпчоп пдоп ъбдбойе опнетб лбобмб (UNIT) й ое впмее юен рп пдопнх йъ пуфбмшощи уре- гйжйлбфптпч. Пуфбмшоще урегйжйлбгйй йнеаф умедхаэйк унщум: IOSTAT = ios зде ios (input/output status) - гембс ретенеообс. Ртй чщ- рпмоеойй OPEN ретенеоопк ios ртйучбйчбефус ъобюеойе 0, еумй ое вщмп пыйвпл, й рпмпцйфемшощк лпд пыйвлй, еумй поб чпъойлмб. ERR = label Хлбъщчбеф нефлх ретеипдб ртй пыйвле. FILE = fname Уфтпюопе чщтбцеойе fname ъбдбеф йнс жбкмб (ртпвемщ ч оен йзоптйтхафус). Еумй урегйжйлбгйа прхуфйфш, уйуфенб убнб упъ- дбуф жбкм у хойлбмшощн йнеоен, лпфптщк вхдеф хойюфпцео ртй езп ъблтщфйй. STATUS = sta Уфтпюопе чщтбцеойе sta дпмцоп, рпуме хдбмеойс ртпвемпч, вщфш пдойн йъ умедхаэйи: 'OLD', 'NEW', 'SCRATCH', 'UNKNOWN'. Еумй хлбъбоп 'OLD', жбкм дпмцео ухэеуфчпчбфш ретед чщрпмоеойен open. Еумй хлбъбоп 'NEW' й жбкм ухэеуфчхеф, по вхдеф уобюбмб прхуфпыео. Еумй хлбъбощ 'OLD' ймй 'NEW', фп урегйжйлбгйс FILE дпмцоб ртйухфуфчпчбфш пвсъбфемшоп. Еумй хлбъбоп 'SCRATCH' (чтенеоощк), жбкм вхдеф хдбмео ртй чщрпмоеойй CLOSE дмс ьфпзп лбобмб. Ртй ьфпн ч ипде тбвпфщ у жбкмпн по жптнбмшоп ое уюйфб- ефус ухэеуфчхаэйн. Еумй урегйжйлбгйа прхуфйфш, рпдтбъхнечбефус 'OLD' дмс ухэеуфчхаэезп жбкмб й 'NEW' дмс оеухэеуфчхаэезп. Урегйжйлбгйс 'UNKNOWN' ьлчйчбмеофоб 'OLD'. ACCESS = acc Уфтпюопе чщтбцеойе acc дпмцоп, рпуме хдбмеойс ртпвемпч, вщфш пдойн йъ умедхаэйи: 'SEQUENTIAL' ймй 'DIRECT'. Поп ъбдбеф урпупв дпуфхрб л жбкмх - рпумедпчбфемшощк ймй ртснпк. Еумй урегйжйлбгйс прхэеоб, ъбдбефус 'SEQUENTIAL'. FORM = fm Уфтпюопе чщтбцеойе fm дпмцоп, рпуме хдбмеойс ртпвемпч, вщфш пдойн йъ умедхаэйи: 'FORMATTED', 'UNFORMATTED', 'BINARY' ймй 'PRINTER'. Поп пъобюбеф, юфп жбкм рпдупедйосефус дмс жпт- нбфопзп ймй веужптнбфопзп ччпдб-чщчпдб, лбл дчпйюощк жбкм ймй дмс чщчпдб об ртйофет. Езп ъобюеойе рп хнпмюбойа - 'FORMATTED' RECL = rlen rlen - гемпе рпмпцйфемшопе чщтбцеойе. Дпмцоп ртйнеосфшус фпмшлп дмс жбкмпч ртснпзп дпуфхрб. Поп ъбдбеф дмйох лбцдпк ъб- рйуй жбкмб. BLANK = blnk Уфтпюопе чщтбцеойе blnk пртедемсеф фтблфпчлх ртпвемпч ртй жптнбфопн ччпде й нпцеф вщфш йънеоеоп йурпмшъпчбойен деултйр- фптпч N й Z ч урегйжйлбгйй жптнбфб. Рпуме хдбмеойс ртпвемпч ъобюеойе blnk дпмцоп вщфш пдойн йъ умедхаэйи: 'NULL' ймй 'ZE- RO'. Еумй ъбдбоп 'NULL', чуе ртпвемщ ртй жптнбфопн ччпде юйуем йзоптйтхафус, б рпме йъ пдойи ртпвемпч фтблфхефус лбл охмш. Еумй ъбдбоп 'ZERO', лбцдщк ртпвем, лтпне чедхэйи, фтблфхефус лбл охмш. Еумй урегйжйлбгйс прхэеоб, ее ъобюеойе вхдеф 'NULL'. BUFFERED = buffered Уфтпюопе чщтбцеойе buffered рпуме хдбмеойс ртпвемпч дпмцоп вщфш 'BUFFERED' ймй 'UNBUFFERED'. Ч ретчпн умхюбе ччпд-чщчпд ч жбкм вхжетйъхефус, б чп чфптпн - оеф. Рп хнпмюбойа чуе жбкмщ (лтпне йурпмшъхаэйи хуфтпкуфчб 0 (*) й 1) обдемсафус учпкуфчпн 'BUFFERED'. 4.2. Претбфпт OPEN дмс ртйофетб Жбкм, пфлтщфщк уп урегйжйлбгйек FORM='PRINTER', тбуунбфтй- чбефус уйуфенпк лбл 'FORMATTED', ъб йулмаюеойен фпзп, юфп рет- чщк уйнчпм чщчпдйнщи уфтпл йофетртефйтхефус фблйн це пвтбъпн, лбл ч Жптфтбое IV. 4.3. Претбфпт CLOSE Претбфпт CLOSE умхцйф дмс ъбчетыеойс учсъй жбкмб й лбобмб. По йнееф чйд: CLOSE (урйупл_урегйжйлбгйк) Ч урйупл_урегйжйлбгйк нпзхф чипдйфш умедхаэйе: [UNIT=] = un IOSTAT = ios ERR = label STATUS = sta Урйупл урегйжйлбгйк дпмцео упдетцбфш тпчоп пдйох урегйжй- лбгйа опнетб лбобмб й ое впмее юен рп пдопк йъ пуфбмшощи уре- гйжйлбгйк. Пуфбмшоще урегйжйлбгйй йнеаф умедхаэйк унщум: IOSTAT = ios Упуфпсойе ччпдб-чщчпдб (input/output status). Ртй чщрпмое- ойй close ретенеоопк IOSTAT ртйучбйчбефус ъобюеойе 0, еумй ое вщмп пыйвпл, й рпмпцйфемшощк лпд пыйвлй, еумй поб чпъойлмб. ERR = label Хлбъщчбеф нефлх ретеипдб ртй пыйвле. STATUS = sta Уфтпюопе чщтбцеойе sta дпмцоп, рпуме хдбмеойс ртпвемпч, вщфш пдойн йъ умедхаэйи: 'KEEP' ймй 'DELETE'. Sta пртедемсеф, юфп вхдеф у жбкмпн дбмшые. 'KEEP' ое дпмцоп ъбдбчбфшус дмс жбкмб, юек уфбфху ретед чщрпмоеойен CLOSE вщм 'SCRATCH'. Еумй 'KEEP' ъбдбефус дмс ухэеуфчхаэезп жбкмб, по вхдеф ртпдпмцбфш ухэеуфчпчбфш рпуме чщрпмоеойс CLOSE. Еумй 'KEEP' ъбдбефус дмс оеухэеуфчхаэезп жбкмб, по ое вхдеф ухэеуфчпчбфш рпуме чщрпмое- ойс CLOSE. Еумй ъбдбоп 'DELETE', жбкм ое вхдеф ухэеуфчпчбфш рпуме чщрпмоеойс CLOSE. Еумй ьфх урегйжйлбгйа прхуфйфш, рп хнпмюбойа хуфбобчмйчбефус 'KEEP', еумй фпмшлп уфбфху жбкмб ое 'SCRATCH'. Ч рпумедоен умхюбе урегйжйлбгйс вхдеф 'DELETE'. Чщрпмоеойе CLOSE, ч лпфптпн ъбдбо опнет лбобмб, нпцеф ртп- йуипдйфш ч мавпн нпдхме чщрпмосенпк ртпзтбннщ, б ое фпмшлп ч фпн, ч лпфптпн чщрпмосмус уппфчефуфчхаэйк OPEN. Чщрпмоеойе CLOSE у оеухэеуфчхаэйн лбобмпн ймй веъ ртйупе- дйоеоопзп жбкмб дпрхулбефус й ое чмйсеф ой об лблпк жбкм. Рпуме фпзп, лбл лбобм пфупедйоео пф жбкмб у рпнпэша CLOSE, по нпцеф вщфш рпдупедйоео уопчб ч фпк це чщрпмосенпк ртпзтбнне л фпнх це мйвп л дтхзпнх жбкмх. 4.4. Оесчощк CLOSE ртй ъбчетыеойй тбвпфщ Ртй ъбчетыеойй тбвпфщ ртпзтбннщ ое йъ-ъб пыйвлй претбгйпо- опк уйуфенщ чуе рпдупедйоеооще лбобмщ ъблтщчбафус. Мавпк лбобм ъблтщчбефус уп уфбфхупн 'KEEP', еумй фпмшлп уфбфху жбкмб ретед ьфйн ое вщм 'SCRATCH'; ч ьфпн умхюбе лбобм ъблтщчбефус уп уфб- фхупн 'DELETE'. Чуе ртпйуипдйф фбл це, лбл ртй чщрпмоеойй дмс лбцдпзп пфлтщфпзп лбобмб CLOSE у оеъбдбоощн уфбфхупн. 4.5. Претбфпт INQUIRE Претбфпт INQUIRE йурпмшъхефус дмс пртпуб ибтблфетйуфйл жбкмб у пртедемеоощн йнеоен мйвп ибтблфетйуфйл рпдупедйоеойс пртедемеоопзп лбобмб. Еуфш дче жптнщ претбфптб INQUIRE: дмс жбкмб ймй дмс лбобмб. Чуе ртйучпеойс рбтбнефтпч дембафус ч уппфчефуфчйй у ртбчймбнй дмс претбфптпч ртйучбйчбойс. Претбфпт INQUIRE нпцеф чщрпмосфшус дп, чп чтенс й рпуме фпзп, лбл жбкм вщм рпдупедйоео л лбобмх. Чуе ртйучбйчбойс ч претбфпте INQUIRE пфчеюбаф нпнеофх чщрпмоеойс претбфптб. Ртй чщрпмоеойй претбфптб INQUIRE ойлпздб ое чпъойлбеф пый- впюощи уйфхбгйк. Чйд претбфптб INQUIRE умедхаэйк: INQUIRE (fурйупл_урегйжйлбгйк) ймй INQUIRE (uурйупл_урегйжйлбгйк) Ртй ьфпн fурйупл - дмс жбкмпч, uурйупл - дмс лбобмпч. Ч урйупл дпмцео чипдйфш тпчоп пдоб урегйжйлбгйс йнеой жбкмб ймй лбобмб, по нпцеф упдетцбфш фблце ое впмее юен рп пдопнх йъ дтхзйи уре- гйжйлбфптпч пртпуб, ретеюйумеоощи ойце. Чйд урегйжйлбгйй йнеой жбкмб умедхаэйк: FILE = fin зде fin - уфтпюопе чщтбцеойе, ъобюеойе лпфптпзп рпуме хдбмеойс ртпвемпч ъбдбеф йнс пртбыйчбенпзп жбкмб. Жбкм ое пвсъбо ухэеуф- чпчбфш ймй вщфш ртйупедйоеоощн л хуфтпкуфчх. Ъобюеойе fin дпмц- оп вщфш дпрхуфйнп ч лбюеуфче йнеой жбкмб. Чйд урегйжйлбгйй опнетб лбобмб умедхаэйк: UNIT = un зде un - гемпе рпмпцйфемшопе чщтбцеойе, ъобюеойе лпфптпзп ъб- дбеф опнет пртбыйчбенпзп лбобмб. Лбобм ое пвсъбо ухэеуфчпчбфш ймй вщфш рпдупедйоео л жбкмх. Еумй по рпдупедйоео л жбкмх, ртпйуипдйф пртпу лбл рбтбнефтпч рпдупедйоеойс, фбл й рбтбнеф- тпч жбкмб. Умедхаэйе урегйжйлбгйй пртпуб дпрхуфйнщ ч мавпк йъ жптн претбфптб INQUIRE: IOSTAT = ios ERR = label EXIST = ex OPENED = od NUMBER = num NAMED = nmd NAME = fn ACCESS = acc SEQUENTIAL = seq DIRECT = dir FORM = fm FORMATTED = fmt UNFORMATTED = umf RECL = rcl NEXTREC = nr BLANK = blnk Чеъде,зде фтевхафус гемще ретенеооще, пой дпмцощ вщфш прй- убощ лбл INTEGER*4 (фп це, юфп й INTEGER); мпзйюеулйе ретенео- още - LOGICAL*4 (фп це, юфп й LOGICAL). Ойце умедхеф прйубойе лбцдпк йъ урегйжйлбгйк. IOSTAT = ios Упуфпсойе ччпдб-чщчпдб (input/output status). Ртй чщрпмое- ойй INQUIRE ретенеоопк ios ртйучбйчбефус ъобюеойе 0. ERR = label Хлбъщчбеф нефлх ретеипдб ртй пыйвле. Ртй чщрпмоеойй претб- фптб INQUIRE ойлпздб ое чпъойлбеф пыйвпюощи уйфхбгйк. EXIST = ex Ex - мпзйюеулбс ретенеообс. Ртй чщрпмоеойй INQUIRE дмс жбкмб ex ртйучбйчбефус .true., еумй жбкм у ъбдбоощн йнеоен ух- эеуфчхеф, йобюе ртйучбйчбефус .false. . Ртй чщрпмоеойй INQUIRE дмс лбобмб ex ртйучбйчбефус .true., еумй лбобм ухэеуфчхеф, йобюе ртйучбйчбефус .false. . Ртй чщрпмоеойй претбфптб INQUIRE ex чуездб хуфбобчмйчбефус. OPENED = od Od - мпзйюеулбс ретенеообс. Ртй чщрпмоеойй INQUIRE дмс жбкмб od ртйучбйчбефус .true., еумй жбкм у ъбдбоощн йнеоен ртйупедйоео л лбобмх, йобюе ртйучбйчбефус .false. . Ртй чщрпм- оеойй INQUIRE дмс лбобмб od ртйучбйчбефус .true., еумй лбобм ртйупедйоео л жбкмх, йобюе ртйучбйчбефус .false. . Ртй чщрпм- оеойй претбфптб INQUIRE od чуездб хуфбобчмйчбефус. NUMBER = num Num - гембс ретенеообс. Num ртйучбйчбефус опнет лбобмб, л лпфптпнх рпдупедйоео жбкм. Еумй жбкм ое рпдупедйоео л лбобмх, ъобюеойе num ое пртедемеоп. NAMED = nmd Nmd - мпзйюеулбс ретенеообс. Nmd ртйучбйчбефус .true., еу- мй жбкм йнееф йнс, йобюе ртйчбйчбефус .false. . NAME = fn Fn - уфтпюобс ретенеообс. Fn ртйучбйчбефус йнс жбкмб, еумй жбкм йнееф йнс, йобюе Fn ое пртедемеоп. ACCESS = acc Acc - уфтпюобс ретенеообс. Acc ртйучбйчбефус ъобюеойе 'SE- QUENTIAL', еумй жбкм рпдупедйоео дмс рпумедпчбфемшопзп дпуфх- рб, й 'DIRECT', еумй дмс ртснпзп. Еумй жбкм ое рпдупедйоео, ъобюеойе acc ое пртедемеоп. SEQUENTIAL = seq Seq - уфтпюобс ретенеообс. Seq ртйучбйчбефус ъобюеойе 'YES', еумй 'SEQUENTIAL' чипдйф ч юйумп дпрхуфйнщи урпупвпч дпуфхрб л жбкмх, й 'NO' ч ртпфйчопн умхюбе. Еумй Жптфтбо ое нпцеф пртедемйфш нефпд дпуфхрб, фп чпъчтбэбенпе ъобюеойе рете- неоопк seq - 'UNKNOWN'. DIRECT = dir Dir - уфтпюобс ретенеообс. Dir ртйучбйчбефус ъобюеойе 'YES', еумй 'DIRECT' чипдйф ч юйумп дпрхуфйнщи урпупвпч дпуфх- рб л жбкмх, й 'NO' ч ртпфйчопн умхюбе. Жптфтбо ое нпцеф прте- демйфш нефпд дпуфхрб, фп чпъчтбэбенпе ъобюеойе ретенеоопк dir - 'UNKNOWN'. FORM = fm Fm - уфтпюобс ретенеообс. Fm ртйучбйчбефус ъобюеойе 'FOR- MATTED', еумй жбкм пфлтщф дмс жптнбфопзп ччпдб-чщчпдб й 'UN- FORMATTED', еумй жбкм пфлтщф дмс веужптнбфопзп ччпдб-чщчпдб. Еумй жбкм ое рпдупедйоео, ъобюеойе fm ое пртедемеоп. FORMATTED = fmt Fmt - уфтпюобс ретенеообс. Fmt ртйучбйчбефус ъобюеойе 'YES', еумй 'FORMATTED' чипдйф ч юйумп дпрхуфйнщи урпупвпч пв- необ у жбкмпн, й 'NO' ч ртпфйчопн умхюбе. Еумй Жптфтбо ое нп- цеф пртедемйфш нефпд дпуфхрб, фп чпъчтбэбенпе ъобюеойе рете- неоопк fmt - 'UNKNOWN'. UNFORMATTED = umf Unf - уфтпюобс ретенеообс. Unf ртйучбйчбефус ъобюеойе 'YES', еумй 'UNFORMATTED' чипдйф ч юйумп дпрхуфйнщи урпупвпч пвнеоб у жбкмпн, й 'NO' ч ртпфйчопн умхюбе. Еумй Жптфтбо ое нпцеф пртедемйфш нефпд дпуфхрб, фп чпъчтбэбенпе ъобюеойе рете- неоопк unf - 'UNKNOWN'. RECL = rcl Rcl - гембс ретенеообс. Rcl ртйучбйчбефус дмйоб ъбрйуй жбкмб, рпдупедйоеоопзп дмс ртснпзп дпуфхрб. Еумй жбкм ое рпд- упедйоео мйвп дпуфхр ое ртснпк, rcl ое пртедемеоп. NEXTREC = nr Nr - гембс ретенеообс. Nr ртйучбйчбефус опнет ъбрйуй, лп- фптбс вхдеф ртпюйфбоб йъ ймй ъбрйубоб ч жбкм ртснпзп дпуфхрб. Еумй жбкм рпдупедйоео, оп ччпдб-чщчпдб еэе ое вщмп, nr тбчоп 1. Еумй жбкм ое рпдупедйоео дмс ртснпзп дпуфхрб ймй фелхэбс рпъйгйс ч жбкме ое пртедемеоб йъ-ъб ртедыеуфчпчбчыйи пыйвпл, nr ое пртедемеоп. BLANK = blnk Blnk - уфтпюобс ретенеообс. Blnk ртйучбйчбефус ъобюеойе 'NULL', еумй дмс жптнбфйтпчбоопзп ччпдб-чщчпдб хуфбопчмеоб урегйжйлбгйс хртбчмеойс ртпвембнй 'NULL', й 'ZERO', еумй дмс жптнбфйтпчбоопзп ччпдб-чщчпдб хуфбопчмеоб урегйжйлбгйс хртбч- меойс ртпвембнй 'ZERO'. Еумй жбкм ое рпдупедйоео мйвп ччпд-чщ- чпд ое жптнбфйтпчбоощк, blnk ое пртедемеоп. 4.6. Претбфптщ рпъйгйпойтпчбойс ч жбкме Претбфптщ рпъйгйпойтпчбойс ч жбкме нпзхф йнефш умедхаэйк чйд: BACKSPACE un BACKSPACE (урйупл_урегйжйлбгйк) REWIND un REWIND (урйупл_урегйжйлбгйк) ENDFILE un ENDFILE (урйупл_урегйжйлбгйк) зде un ъбдбеф опнет лбобмб, б урйупл_урегйжйлбгйк упуфпйф йъ: [UNIT=] un IOSTAT = ios ERR = label Урйупл урегйжйлбгйк дпмцео упдетцбфш тпчоп пдох урегйжйлб- гйа опнетб лбобмб й нпцеф упдетцбфш ое впмее юен рп пдопк йъ пуфбмшощи урегйжйлбгйк. Лбобм, ъбдбоощк ч претбфптби BACKSPACE, REWIND ймй BACK- SPACE, дпмцео вщфш пфлтщф дмс рпумедпчбфемшопзп дпуфхрб. Еумй ч рпъйгйпойтхаэен претбфпте еуфш iostat, IOS ртйучбй- чбефус 0, еумй ое вщмп пыйвпл, й гемпе рпмпцйфемшопе юйумп, еу- мй пыйвлб чпъойлмб. 4.6.1. Претбфпт BACKSPACE Чщрпмоеойе BACKSPACE хуфбобчмйчбеф фелхэха рпъйгйа ч жбкме ретед обюбмпн ртедщдхэек ъбрйуй. Еумй фблпчпк оеф, фелхэбс рп- ъйгйс ое неосефус. Еумй ртедщдхэбс ъбрйуш - ьфп ENDFILE, фелх- эбс рпъйгйс тбурпмпцйфус ретед ENDFILE. Чщрпмоеойе BACKSPACE дмс жбкмб, лпфптщк рпдупедйоео, оп ое ухэеуфчхеф, ое дпрхулбефус. Чщрпмоеойе BACKSPACE дмс чохфтео- ойи жбкмпч (уфтпюощи ретенеоощи) ое дпрхулбефус. Дпрхулбефус чщрпмоеойе BACKSPACE дмс лбобмб, ое рпдупедй- оеоопзп л жбкмх. 4.6.2. Претбфпт REWIND Чщрпмоеойе REWIND хуфбобчмйчбеф фелхэха рпъйгйа ч жбкме ретед обюбмпн ретчпк ъбрйуй. Чщрпмоеойе REWIND дмс жбкмб, лпфптщк рпдупедйоео, оп ое ухэеуфчхеф, дпрхулбефус, оп ой л юенх ое ртйчпдйф. 4.6.3. Претбфпт ENDFILE Чщрпмоеойе ENDFILE ртйчпдйф л рпнеэеойа ч жбкм ъбрйуй END- FILE рпуме фелхэек ъбрйуй. Л упцбмеойа, "тбвпфбеф" фпмшлп дп вмйцбкыезп ъблтщфйс жбкмб. 4.7. Пзтбойюеойс об йурпмшъпчбойе жхолгйк ч урйулби претбфптпч ччпдб-чщчпдб Жхолгйа оемшъс йурпмшъпчбфш ч чщтбцеойси, рпсчмсаэйиус ч урйулби урегйжйлбгйк ччпдб-чщчпдб, еумй пвтбэеойе л жхолгйй убнп рпфтевхеф чщрпмоеойс ччпдб-чщчпдб. 5. Дпрпмойфемшоще уфбодбтфоще рпдртпзтбннщ й жхолгйй Жптфтбоб SVS 5.1. INOT, IAND, IOR, IEOR - рптбътсдоще мпзйюеулйе жхолгйй, ртйнеосафус л рбте гемщи юйуем, дбаф гемщк теъхмшфбф. 5.2. ISHFT (гемпе, чемйюйоб удчйзб). Мпзйюеулйк удчйз, рпмпцй- фемшопк чемйюйое удчйзб уппфчефуфчхеф удчйз чмечп. 5.3. POKE (бдтеу, ъобюеойе). Рпдртпзтбннб дмс ъбрпнйобойс дбо- опзп вбкфб рп дбоопнх бдтеух. Ъобюеойе дпмцоп вщфш прйубоп лбл INTEGER*1. 5.4. IPEEK (бдтеу) - чщвптлб вбкфб рп дбоопнх бдтеух. Теъхмш- фбф жхолгйй йнееф фйр INTEGER*4. 5.5. VERS - рпдртпзтбннб дмс реюбфй четуйй й дбфщ йъзпфпчмеойс уфбодбтфопзп жптфтбоопзп плтхцеойс. 5.6. RAN (I) - рпмхюеойе умхюбкопзп чеэеуфчеоопзп юйумб ч дйб- рбъпое пф 0 дп 1. Еумй I пфтйгбфемшоп, дбфюйл умхюбкощи юйуем рпмхюбеф опчпе обюбмшопе ъобюеойе. Ртй I=0 чщдбефус пдоп й фп це "умхюбкопе" юйумп. 5.7. IARGC () - чщдбеф юйумп бтзхнеофпч лпнбодопк уфтплй, уюй- фбс й убнх лпнбодх, фбл юфп теъхмшфбф чуездб ое неошые 1. Нбл- уйнбмшопе дпрхуфйнпе юйумп бтзхнеофпч хуфбопчйфш ое хдбмпуш. 5.8. GETARG (опнет бтзхнеофб, бтзхнеоф) - рпдртпзтбннб чпъчтб- эбеф бтзхнеоф лпнбодопк уфтплй у ъбдбоощн опнетпн (еуфеуфчео- оп, ч чйде фелуфпчпк уфтплй). 5.9. FHALT (лпд) - ъбчетыбеф тбвпфх жптфтбо-ртпзтбннщ у ъбдбо- ощн лпдпн чпъчтбфб. 5.10. ABORT () - ъбчетыбеф тбвпфх жптфтбо-ртпзтбннщ, ъблтщчбеф чуе пфлтщфще жбкмщ, пвтеъбс йи рп фелхэек рпъйгйй хлбъбфемс жбкмб. 5.11. SYSTEM (бдтеу_уфтплй_плбоюйчбаэекус_охмен) - ретедбеф уфтплх SHELLх, лбл еумй вщ поб вщмб ччедеоб у фетнйобмб. Фелх- эйк ртпгеуу цдеф ъбчетыеойс SHELLб. Фбл лбл бтзхнеофпн счмсеф- ус уфтплб, фп обдп рпмшъпчбфшус умедхаэек лпоуфтхлгйек: C Тбътеыеоп учсъщчбфш рпутедуфчпн претбфптб equivalence C уйнчпмшоще й юйумпчще дбооще $charequ character*44 n equivalence (i,n) C Рпмхюйфш мйуфйоз рпддйтелфптйк /udd, реюбфбс уйнчпмщ у лпдб- C нй неошыйнй 40(8) ч чпушнетйюопн чйде, ч жбкме lsfil.lst C Уфтплб дмс SHELLб дпмцоб ъблбоюйчбфшус охмен n='ls -br /udd/* > lsfil.lst'//char(0) call system(i) end 5.12. IFD (unit) - ртй пвтбэеойй л ьфпк жхолгйй у опнетпн лбоб- мб пфлтщфпзп жбкмб, теъхмшфбфпн вхдеф деултйрфпт жбкмб ч унщуме претбгйпоопк уйуфенщ UNIX. Обртйнет, ртпзтбннб open(99, file = 'ABC') write(*,*) IFD(99) чщчедеф деултйрфпт жбкмб ABC, йурпмшъхенщк ртй тбвпфе UNIXпн. 6. Тбвпфб у вйвмйпфелбнй Жптфтбо-ртпзтбнн Дмс тбвпфщ у вйвмйпфелбнй Жптфтбо-ртпзтбнн умхцйф лпнбодб претбгйпоопк уйуфенщ ar -лмаюй йнс_вйвмйпфелй йнс_жбкмб... Рп уйуфенощн упзмбыеойсн йнс_вйвмйпфелй дпмцоп обюйобфшус у вхлч lib й йнефш тбуыйтеойе .a. Ч дбоопн лпофелуфе йнс_жбкмб - ьфп йнс пв®елфопзп жбкмб, рпмхюеоопзп рпуме фтбоумсгйй у Жптфтбоб (тбуыйтеойе .o). Обйвпмее хрпфтевйфемшоще лмаюй: ru - дмс дпвбчмеойс й ъбнеощ жбкмпч ч вйвмйпфеле d - дмс хдбмеойс жбкмпч t - дмс чщчпдб лбфбмпзб вйвмйпфелй 6.1. Упъдбойе вйвмйпфелй, дпдбчмеойе й йънеоеойе жбкмпч Чщрпмосефус рп лпнбоде ar -ru йнс_вйвмйпфелй йнс_жбкмб... Еумй вйвмйпфелй ое ухэеуфчпчбмп, поб упъдбефус й об ьлтбо (фпюоее, об уфбодбтфощк ртпфплпм) чщдбефус уппвэеойе. Еумй ч вйвмйпфеле ое вщмп хлбъбоощи ч лпнбоде жбкмпч, пой дпвбчмсаф- ус, еумй вщмй - ъбнеосафус, оп ртй фпн хумпчйй, юфп хлбъбооще жбкмщ нпдйжйгйтпчбмйуш рпъдоее пдопйнеоощи лпнрпоеофпч вйвмйп- фелй. Фен убнщн, еумй упуфбч вйвмйпфелй уфбвймео, дмс пвопчме- ойс нпцоп рпмшъпчбфшус лпнбодпк ar у рпуфпсоощн обвптпн жбкмпч й ъбопуйфшус ч вйвмйпфелх вхдхф фпмшлп учецйе пв®елфоще жбкмщ. Еумй лпофтпмш ъб дбфпк нпдйжйлбгйй ое охцео, чнеуфп лмаюб ru умедхеф хлбъщчбфш ртпуфп r. 6.2. Хдбмеойе жбкмпч йъ вйвмйпфелй Чщрпмосефус рп лпнбоде ar -d йнс_вйвмйпфелй йнс_жбкмб... 6.3. Чщчпд лбфбмпзб вйвмйпфелй Чщрпмосефус рп лпнбоде ar -t йнс_вйвмйпфелй 7. Учсъш у същлпн C Пуопчощне пфмйюйс нецдх чщъпчбнй жхолгйк дмс C й Жптфтбоб: б) жблфйюеулйе й жптнбмшоще рбтбнефтщ ртй чщъпчби жхол- гйк об C й об Жптфтбое ретедбафус ч пвтбфопн рп- тсдле; в) рбтбнефтщ жхолгйк й рпдртпзтбнн Жптфтбопн ретедбафус чуездб рп уущмле, рпьфпнх ртй тбвпфе об C ч лбюеуфче жптнбмшощи й жблфйюеулйи рбтбнефтпч обдп йурпмшъп- чбфш хлбъбфемй. ч) ртй ретедбюе уйнчпмшощи уфтпл пф Жптфтбоб рпдртпз- тбннб об C рпмхюйф уобюбмб 4-вбкфпчщк рбтбнефт, уп- пфчефуфчхаэйк дмйое уфтплй, б ъбфен хлбъбфемш об уфтплх, ое плбоюйчбаэхаус охмен; ртй пвтбфопк рете- дбюе оепвипдйнп фблце уобюбмб хлбъбфш дмйох уфтплй (веъ ъбчетыбаэезп охмс), б ъбфен хце ее убнх. 7.1. Чщъпч C йъ Жптфтбоб Жптфтбо ретедбеф рбтбнефтщ жхолгйсн й рпдртпзтбннбн рп уущмле, рпьфпнх жптнбмшоще рбтбнефтщ ч чщъщчбенпк рпдртпзтбнне дпмцощ вщфш прйубощ лбл хлбъбфемй. Обртйнет, чщъщчбаэбс ртпзтбннб об Жптфтбое нпцеф вщфш фб- лпк: INTEGER I, J DOUBLE PRECISION D I = CFUNC2(I, J, D) Фпздб чщъщчбенбс рпдртпзтбннб об C дпмцоб чщзмсдефш умедх- аэйн пвтбъпн: cfunc2(d, j, i) int *i, *j; double *d; { if (*d == 0.0) return(*i + *j); else return(*i - *j); } Обдп пфнефйфш, юфп ртй ретедбюе уйнчпмшощи уфтпл пф Жптф- тбоб рпдртпзтбннб об C рпмхюйф уобюбмб 4-вбкфпчщк рбтбнефт, уп- пфчефуфчхаэйк дмйое уфтплй, б ъбфен хлбъбфемш об уфтплх, ое плбоюйчбаэхаус охмен. Обртйнет, обрйыен ртпзтбннх об C, пртедемсаэха дмйох уфтп- лй, ретедбчбенпк йъ Жптфтбоб. Об Жптфтбое: CHARACTER * 20 A INTEGER*4 I A = 'HELLO, WORLD!' I = LENGTH(A) Об C: length(len, string) long len; char * string; { return (len) } 7.2. Чщъпч Жптфтбоб йъ C Ртй чщъпче Жптфтбоб йъ C, оепвипдйнп: б) ч лбюеуфче жблфйюеулйи рбтбнефтпч ретедбчбфш хлбъб- фемй об ойи; в) ретедбчбфш жблфйюеулйе рбтбнефтщ ч рптсдле, пвтбфопн йи умедпчбойа ч урйуле жптнбмшощи рбтбнефтпч Жптф- тбо-рпдртпзтбнн. Обртйнет, л рпдртпзтбнне, прйубоопк лбл FUNCTION IFUNC(I, J, D) DOUBLE PRECISION D INTEGER I, J обдп пвтбэбфшус i = ifunc(&d, &j, &i); 7.3. Ъбнеюбойс Уущмлй дмс мйолетб об чоеыойе рпдртпзтбннщ дмс Жптфтбоб чуездб зеоетйтхафус нбмеошлйнй вхлчбнй, б дмс C - фенй вхлчбнй, лблйнй ъбрйубоп ее йнс ч фелуфе ртпзтбннщ. Нпцоп ртпйъчпдйфш телхтуйчоще чщъпчщ рпдртпзтбнн, обрйубо- ощи об тбъощи същлби.