HP OpenVMS Systems Documentation

Content starts here

15 ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Á¤º¸ ¾ò±â ¹× Á¶ÀÛ
·º½ÃÄ® ÇÔ¼ö´Â ¸í·ÉÇàÀ̳ª ¸í·É ÇÁ·Î½ÃÀú·Î Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù. ¹ÝȯµÈ Á¤º¸´Â »ç¿ëÀÚ ÇÁ·Î¼¼½º³ª ½Ã½ºÅÛ, ÆÄÀÏ ¹× ÀåÄ¡, ³í¸® À̸§, ¹®ÀÚ¿­ ¶Ç´Â µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇÑ °ÍÀÏ ¼ö ÀÖ½À´Ï´Ù. ·º½ÃÄ® ÇÔ¼ö´Â Á¢µÎ»ç F$¿¡ ÀÇÇØ ½Äº°µË´Ï´Ù.
ÀϹÝÀûÀ¸·Î ±âÈ£³ª Ç¥Çö½ÄÀ» »ç¿ëÇÏ´Â ÄÁÅؽºÆ®¿¡¼­ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸í·É ÇÁ·Î½ÃÀú¿¡¼­ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ³í¸® À̸§À» º¯È¯ÇÏ°í ¹®ÀÚ¿­ Á¶ÀÛÀ» ¼öÇàÇϸç ÇÁ·Î½ÃÀúÀÇ ÇöÀç ó¸® ¸ðµå¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¹Àº ·º½ÃÄ® ÇÔ¼ö´Â DCL ¸í·É¿¡¼­ °¡Á®¿Ã ¼ö ÀÖ´Â Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
ÀÌ Àå¿¡´Â ´ÙÀ½ Á¤º¸°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.
·º½ÃÄ® ÇÔ¼ö ÀÛµ¿ ¹æ¹ý
»ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ Á¤º¸ ¾ò±â
½Ã½ºÅÛ¿¡ ´ëÇÑ Á¤º¸ ¾ò±â
ÆÄÀÏ ¹× ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸ ¾ò±â
³í¸® À̸§ º¯È¯
¹®ÀÚ¿­ Á¶ÀÛ
µ¥ÀÌÅÍ À¯Çü Á¶ÀÛ
·º½ÃÄ® ÇÔ¼ö¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¿Â¶óÀÎ µµ¿ò¸»À» ÂüÁ¶ÇϽʽÿÀ. ÀÌ Àå¿¡¼­ ¼³¸íÇÏ´Â ¸í·É¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº OpenVMS DCL Dictionary¸¦ ÂüÁ¶ÇϽʽÿÀ.
·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯
¸í·ÉÀÌ ¾Æ´Ñ ·º½ÃÄ® ÇÔ¼ö·ÎºÎÅÍ Á¤º¸¸¦ ¾òÀ¸¸é ¸í·É ÇÁ·Î½ÃÀú¿¡¼­ ÀÌ Á¤º¸¸¦ Á» ´õ ½±°Ô Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, F$ENVIRONMENT ÇÔ¼ö³ª SHOW DEFAULT ¸í·É Áß Çϳª¸¦ »ç¿ëÇÏ¿© ÇöÀç ±âº» µð·ºÅ丮ÀÇ À̸§À» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ±× Â÷ÀÌ´Â ´ÙÀ½°ú °°½À´Ï´Ù.
F$ENVIRONMENT ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é °á°ú¸¦ ±âÈ£¿¡ ÇÒ´çÇÑ ´ÙÀ½ ³ªÁß¿¡ ÇÁ·Î½ÃÀú¿¡¼­ ÀÌ ±âÈ£¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
$ DIR_NAME = F$ENVIRONMENT("DEFAULT")
$ SET DEFAULT DISK4:[TEST]
.
.
.
$ SET DEFAULT 'DIR_NAME'
F$ENVIRONMENT ÇÔ¼ö´Â ÇöÀç ±âº» µð½ºÅ©¿Í µð·ºÅ丮¸¦ ¹ÝȯÇϸç ÀÌ °ªÀ» ±âÈ£ DIR_NAME¿¡ ÀúÀåÇÕ´Ï´Ù. ÇÁ·Î½ÃÀú ³¡¿¡¼­ DIR_NAME ±âÈ£¸¦ »ç¿ëÇÏ¿© SET DEFAULT ¸í·ÉÀ¸·Î ±âº»°ªÀ» º¹¿øÇÒ ¼ö ÀÖ½À´Ï´Ù.
F$ENVIRONMENT ÇÔ¼ö ´ë½Å SHOW DEFAULT ¸í·ÉÀ» »ç¿ëÇÏ¿© ÇöÀç ±âº» µð·ºÅ丮ÀÇ °ªÀ» ¾ò´Â °æ¿ì ÀÌ Ãâ·ÂÀ» ±âÈ£¿¡ Á÷Á¢ ÇÒ´çÇÒ ¼ö ¾ø½À´Ï´Ù. µû¶ó¼­ ÇÁ·Î½ÃÀú´Â ´ÙÀ½°ú °°¾ÆÁý´Ï´Ù.
$! Redirect the output of the SHOW DEFAULT command to a file.
$ DEFINE/SUPERVISOR_MODE SYS$OUTPUT DISK4:[TEST]TEMPFILE.DAT
$ SHOW DEFAULT
$ DEASSIGN SYS$OUTPUT
$!
$ OPEN/READ DIR_FILE DISK4:[TEST]TEMPFILE.DAT ! Open the file.
$ READ DIR_FILE DIR_NAME, ! Read the file.
$ SET DEFAULT 'DIR_NAME' ! Reset the directory.
$ CLOSE DIR_FILE ! Close the file.
$ DELETE DISK4:[TEST]TEMPFILE.DAT;* ! Delete the file.
»ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ Á¤º¸ ¾ò±â
¸í·É ÇÁ·Î½ÃÀú°¡ Áö¼ÓµÇ´Â µ¿¾È ÇÁ·Î¼¼½º Ư¼ºÀ» º¯°æÇÑ ´ÙÀ½ º¹¿øÇÏ´Â °æ¿ì°¡ Á¾Á¾ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì ´ÙÀ½ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 15-1
F$DIRECTORY
ÇöÀç ±âº» µð·ºÅ丮 ¹®ÀÚ¿­À» ¹ÝȯÇÕ´Ï´Ù.
F$ENVIRONMENT
»ç¿ëÀÚ ÇÁ·Î¼¼½ºÀÇ ¸í·É ȯ°æ¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$GETJPI
½Ã½ºÅÛÀÇ »ç¿ëÀÚ ÇÁ·Î¼¼½º³ª ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ °èÁ¤, »óÅ ¹× ½Äº° Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$MODE
ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ°í ÀÖ´Â ¸ðµå¸¦ º¸¿© ÁÝ´Ï´Ù.
F$PRIVILEGE
»ç¿ëÀÚ ÇÁ·Î¼¼½º°¡ ÁöÁ¤µÈ ±ÇÇÑÀ» °¡Áö°í ÀÖ´ÂÁö Ç¥½ÃÇÕ´Ï´Ù.
F$PROCESS
»ç¿ëÀÚ ÇÁ·Î¼¼½º À̸§À» ¹ÝȯÇÕ´Ï´Ù.
F$SETPRV
ÁöÁ¤µÈ ±ÇÇÑÀ» ¼³Á¤ÇÏ°í F$SETPRV ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ÁöÁ¤µÈ ±ÇÇÑÀÌ ÀÌ¹Ì È°¼ºÈ­µÇ¾î ÀÖ´ÂÁö Ç¥½ÃÇÕ´Ï´Ù.
F$USER
»ç¿ëÀÚ ½Äº° ÄÚµå(UIC)¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$VERIFY
È®ÀÎ ±â´ÉÀÌ ÄÑÁ® ÀÖ´ÂÁö ²¨Á® ÀÖ´ÂÁö Ç¥½ÃÇÕ´Ï´Ù.

´ÙÀ½ Ç¥´Â ¸í·É ÇÁ·Î½ÃÀú¿¡¼­ ÀϹÝÀûÀ¸·Î º¯°æµÇ´Â ÇÁ·Î¼¼½º Ư¼ºÀ» º¸¿© ÁÝ´Ï´Ù. ±×¸®°í ÀÌ·¯ÇÑ Æ¯¼ºÀ» ÀúÀåÇÏ´Â ·º½ÃÄ® ÇÔ¼ö¿Í ¿ø·¡ ¼³Á¤À» º¹¿øÇÏ´Â DCL ¸í·ÉÀ» Á¦½ÃÇÕ´Ï´Ù.
Ç¥ 15-2
Ư¼º
ÀÛ¾÷
¸í·É ¶Ç´Â ·º½ÃÄ® ÇÔ¼ö
Á¦¾î ¹®ÀÚ
ÀúÀå
F$ENVIRONMENT("CONTROL")
º¹¿ø
SET CONTROL
DCL ÇÁ·ÒÇÁÆ®
ÀúÀå
F$ENVIRONMENT("PROMPT")
º¹¿ø
SET PROMPT
±âº» º¸È£
ÀúÀå
F$ENVIRONMENT("PROTECTION")
º¹¿ø
SET PROTECTION/DEFAULT
Å° »óÅÂ
ÀúÀå
F$ENVIRONMENT("KEY_STATE")
º¹¿ø
SET KEY
¸Þ½ÃÁö Çü½Ä
ÀúÀå
F$ENVIRONMENT("MESSAGE")
º¹¿ø
SET MESSAGE
񀀥
ÀúÀå
F$PRIVILEGE ¶Ç´Â F$SETPRV
º¹¿ø
F$SETPRV ¶Ç´Â SET PROCESS/PRIVILEGES
È®ÀÎ
ÀúÀå
F$VERIFY ¶Ç´Â F$ENVIRONMENT
º¹¿ø
F$VERIFY ¶Ç´Â SET VERIFY

ÇÁ·Î¼¼½º Ư¼ºÀ» ÀúÀåÇÏ´Â °æ¿ì ¿ø·¡ Ư¼ºÀ» º¹¿øÇϱâ Àü¿¡ ¿À·ù³ª Ctrl/Y ÀÎÅÍ·´Æ®·Î ÀÎÇØ ÇÁ·Î½ÃÀú°¡ Á¾·áÇÏÁö ¾Êµµ·Ï ÇØ¾ß ÇÕ´Ï´Ù. ¿À·ù ¹× Ctrl/Y ÀÎÅÍ·´Æ® 󸮿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº 13ÀåÀ» ÂüÁ¶ÇϽʽÿÀ.
È®ÀÎ ¼³Á¤ º¯°æ
F$VERIFY ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¸í·É ÇÁ·Î½ÃÀú°¡ Áö¼ÓµÇ´Â µ¿¾È È®ÀÎÀ» ºñÈ°¼ºÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô Çϸé ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇÏ´Â µ¿¾È »ç¿ëÀÚ°¡ ÇÁ·Î½ÃÀú ³»¿ëÀ» Ç¥½ÃÇÏÁö ¸øÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
µÎ °¡Áö À¯ÇüÀÇ È®ÀÎÀÌ ÀÖ½À´Ï´Ù.
ÇÁ·Î½ÃÀú È®ÀÎ
½ÇÇà ÁßÀÎ °¢ ¸í·ÉÇàÀ» Ç¥½ÃÇÕ´Ï´Ù.
À̹ÌÁö È®ÀÎ
ó¸® ÁßÀÎ °¢ µ¥ÀÌÅÍ ÇàÀ» Ç¥½ÃÇÕ´Ï´Ù.
±âº»ÀûÀ¸·Î SET [NO]VERIFY ¸í·É°ú F$VERIFY ÇÔ¼ö´Â µÎ °¡Áö È®ÀÎ À¯ÇüÀ» ¸ðµÎ È°¼ºÈ­Çϰųª ºñÈ°¼ºÈ­ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î ÇÑ ÇÁ·Î½ÃÀú¿¡¼­ ÇÁ·Î½ÃÀú ¹× À̹ÌÁö È®ÀÎ ¼³Á¤Àº °°½À´Ï´Ù. Áï, ¾çÂÊ ¸ðµÎ È°¼ºÈ­µÇ¾î Àְųª ¾çÂÊ ¸ðµÎ ºñÈ°¼ºÈ­µÇ¾î ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¼³Á¤À» º¯°æÇϱâ·Î °áÁ¤ÇÏ¸é °¢ È®ÀÎ ¼³Á¤À» µû·Î ÀúÀåÇϽʽÿÀ.
´ÙÀ½ º¸±â¿¡¼­ ±âÈ£ TEMP´Â È®ÀÎÀ» È°¼ºÈ­ ¹× ºñÈ°¼ºÈ­ÇÏ´Â µ¥ »ç¿ëÇÕ´Ï´Ù.
$ ! Enable verification
$ !
$ TEMP = F$VERIFY(1)
$ LOOP:
$ INQUIRE FILE "File name"$ IF FILE .EQS."" THEN EXIT
$ PRINT 'FILE'
$ GOTO LOOP
$ ! Disable verification
$ !
$ TEMP = F$VERIFY(0)
$ EXIT
´ÙÀ½ º¸±â¿¡¼­´Â È®ÀÎ ¼³Á¤ÀÌ ÀúÀåµË´Ï´Ù.
$ ! Save each verification state.
$ ! Turn both states off.
$ SAVE_VERIFY_IMAGE = F$ENVIRONMENT("VERIFY_IMAGE")
$ SAVE_VERIFY_PROCEDURE = F$VERIFY(0)
.
.
.
$ ! Restore original verification states.
$ SAVE_VERIFY_IMAGE = F$VERIFY(SAVE_VERIFY_PROCEDURE,-
SAVE_VERIFY_IMAGE)
F$ENVIRONMENT ÇÔ¼ö°¡ ÇöÀç À̹ÌÁö È®ÀÎ ¼³Á¤À» ¹ÝȯÇÏ°í ÀÌ °ªÀ» ±âÈ£ SAVE_VERIFY_IMAGE¿¡ ÇÒ´çÇÕ´Ï´Ù. ±×·± ´ÙÀ½ F$VERIFY ÇÔ¼ö°¡ ÇöÀç ÇÁ·Î½ÃÀú È®ÀÎ ¼³Á¤À» ¹ÝȯÇÏ°í ÀÌ °ªÀ» ±âÈ£ SAVE_VERIFY_PROCEDURE¿¡ ÇÒ´çÇÕ´Ï´Ù. F$VERIFY ÇÔ¼ö´Â À̹ÌÁö ¹× ÇÁ·Î½ÃÀú È®ÀÎÀ» ¸ðµÎ ºñÈ°¼ºÈ­ÇÕ´Ï´Ù. F$VERIFY¸¦ »ç¿ëÇÏ¿© È®ÀÎÀ» ºñÈ°¼ºÈ­Çϱâ Àü¿¡ F$ENVIRONMENT ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÇÁ·Î½ÃÀú È®ÀÎ ¼³Á¤À» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¾ÕÀÇ º¸±â¿¡¼­Ã³·³ µÎ ÀÛ¾÷À» ÇÑ ¸í·ÉÇà¿¡¼­ ¼öÇàÇÏ·Á¸é F$VERIFY¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ °£´ÜÇÕ´Ï´Ù.
ÀÌ ÇÁ·Î½ÃÀúÀÇ ³¡¿¡¼­ F$VERIFY ÇÔ¼ö´Â ±âÈ£ SAVE_VERIFY_PROCEDURE¿Í SAVE_VERIFY_IMAGE·Î ÁöÁ¤Çß´ø ¿ø·¡ ¼³Á¤À» º¹¿øÇÕ´Ï´Ù.
ÁÖ) time-stamp¸¦ »ç¿ëÇÏ°í ÀÖ´Â °æ¿ì¿¡´Â È®ÀÎÀÌ È°¼ºÈ­µÇ¾î ÀÖÀ» ¶§¸¸ Àû¿ëµÈ´Ù´Â »ç½ÇÀ» ±â¾ïÇØ¾ß ÇÕ´Ï´Ù. time-stamp ¹× SET PREFIX ¸í·É¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº OpenVMS DCL Dictionary ¶Ç´Â DCL µµ¿ò¸»À» ÂüÁ¶ÇϽʽÿÀ.
±âº» ÆÄÀÏ º¸È£ º¯°æ
¸í·É ÇÁ·Î½ÃÀú ³»¿¡¼­ ±âº» ÆÄÀÏ º¸È£¸¦ º¯°æÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ´ÙÀ½ ¸í·É ÇÁ·Î½ÃÀú´Â ÇÁ·Î½ÃÀú°¡ ½ÇÇàµÇ´Â µ¿¾È ¸¸µç ÆÄÀÏ°ú ¿¬°üµÈ ±âº» º¸È£¸¦ º¯°æÇÕ´Ï´Ù.
ÇÁ·Î½ÃÀú¿¡¼­´Â Á¾·áÇϱâ Àü¿¡ ¿ø·¡ÀÇ ±âº» ÆÄÀÏ º¸È£¸¦ º¹¿øÇÕ´Ï´Ù.
$ SAVE_PROT = F$ENVIRONMENT("PROTECTION")
$ SET PROTECTION = (SYSTEM:RWED, OWNER:RWED, GROUP, WORLD)/DEFAULT
.
.
.
$ SET PROTECTION=('SAVE_PROT')/DEFAULT
$ EXIT
F$ENVIRONMENT ÇÔ¼ö´Â SET PROTECTION ¸í·É¿¡ ÇÊ¿äÇÑ ±¸¹®À» »ç¿ëÇÏ¿© ±âº» º¸È£ Äڵ带 ¹ÝȯÇÑ´Ù´Â »ç½ÇÀ» À¯ÀÇÇϽʽÿÀ. µû¶ó¼­ SET PROTECTION ¸í·É°ú ÇÔ²² ±âÈ£ SAVE_PROTÀ» »ç¿ëÇÏ¿© ¿ø·¡ÀÇ ±âº» ÆÄÀÏ º¸È£¸¦ º¹¿øÇÒ ¼ö ÀÖ½À´Ï´Ù.
½Ã½ºÅÛ¿¡ ´ëÇÑ Á¤º¸ ¾ò±â
´ÙÀ½ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ½Ã½ºÅÛ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 15-3
F$CONTEXT
F$PID ÇÔ¼ö¿¡ »ç¿ëÇÒ ¼±Åà Á¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù. F$CONTEXT ÇÔ¼ö¸¦ »ç¿ëÇϸé F$PID ÇÔ¼ö°¡ OpenVMS Cluster ½Ã½ºÅÛÀÇ ¸ðµç ³ëµå¿¡¼­ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
F$CSID
OpenVMS Cluster ½Äº° ¹øÈ£¸¦ ¹ÝȯÇÏ°í ÄÁÅؽºÆ® ±âÈ£¸¦ ¾÷µ¥ÀÌÆ®ÇÏ¿© ½Ã½ºÅÛÀÇ OpenVMS Cluster ³ëµå ¸ñ·Ï¿¡¼­ ÇöÀç À§Ä¡¸¦ °¡¸®Å°°Ô ÇÕ´Ï´Ù.
F$GETQUI
´ë±â¿­, ÇöÀç ÇØ´ç ´ë±â¿­¿¡ ÀÖ´Â ÀÏ°ý ó¸® ÀÛ¾÷ ¹× Àμâ ÀÛ¾÷, ¾ç½Ä Á¤ÀÇ ±×¸®°í ½Ã½ºÅÛ ÀÛ¾÷ ´ë±â¿­ ÆÄÀÏ¿¡ º¸°üµÈ Ư¼º Á¤ÀÇ¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$GETSYI
·ÎÄà ½Ã½ºÅÛÀ̳ª OpenVMS Cluster ½Ã½ºÅÛÀÇ ³ëµå(½Ã½ºÅÛÀÌ OpenVMS ClusterÀÇ ÀϺÎÀÎ °æ¿ì)¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$IDENTIFIER
Áõ¸í¼­¸¦ À̸§ÀÌ ÁöÁ¤µÈ Çü½Ä¿¡¼­ ¼ýÀÚ Çü½ÄÀ¸·Î ¶Ç´Â ¼ýÀÚ Çü½Ä¿¡¼­ À̸§ÀÌ ÁöÁ¤µÈ Çü½ÄÀ¸·Î º¯È¯ÇÕ´Ï´Ù.
F$MESSAGE
»óÅ ÄÚµå¿Í ¿¬°áµÈ ¸Þ½ÃÁö ÅؽºÆ®¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$PID
»ç¿ëÀÚ°¡ °Ë»çÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º Áõ¸í¼­(PID)¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$TIME
ÇöÀç ³¯Â¥¿Í ½Ã°£À» ¹ÝȯÇÕ´Ï´Ù.

OpenVMS Cluster ³ëµå À̸§ È®ÀÎ
»ç¿ëÀÚÀÇ ½Ã½ºÅÛÀÌ ¿©·¯ °³ÀÇ ¼­·Î ´Ù¸¥ ³ëµå¿¡ ·Î±×ÀÎÇÒ ¼ö ÀÖ´Â OpenVMS Cluster ȯ°æÀÇ ÀϺÎÀÎ °æ¿ì¿¡´Â ÇöÀç »ç¿ëÇÏ°í ÀÖ´Â ³ëµå¸¦ ³ªÅ¸³»µµ·Ï DCL ÇÁ·ÒÇÁÆ®¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÀÛ¾÷À» ÇÏ·Á¸é ³ëµå À̸§À» È®ÀÎÇÒ ¼ö ÀÖµµ·Ï ·Î±×ÀÎ ¸í·É ÇÁ·Î½ÃÀú¿¡ F$GETSYI ÇÔ¼ö¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. ±×·± ´ÙÀ½ SET PROMPT ¸í·ÉÀ» »ç¿ëÇÏ¿© ÇØ´ç ³ëµå¿¡ ´ëÇØ °íÀ¯ÇÑ ÇÁ·ÒÇÁÆ®¸¦ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.
³ëµå À̸§ÀÇ ÀϺθ¸ ÇÁ·ÒÇÁÆ® ¹®ÀÚ¿­¿¡ »ç¿ëÇÏ·Á¸é F$EXTRACT ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÀûÀýÇÑ ¹®ÀÚ¸¦ ÃßÃâÇϽʽÿÀ. ¹®ÀÚ ÃßÃâ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¹®ÀÚ¿­ÀÇ ÀϺΠÃßÃâÀ» ÂüÁ¶ÇϽʽÿÀ.
´ÙÀ½ º¸±â¿¡¼­ ±âÈ£ NODE´Â FF$GETSYI("NODENAME")·Î Á¤ÀǵǾî ÀÖÀ¸¸ç ³ëµå À̸§Àº ÇÁ·ÒÇÁÆ®·Î »ç¿ëµË´Ï´Ù.
$ NODE = F$GETSYI("NODENAME")
$ SET PROMPT = "''NODE'$ "
.
.
.
´ë±â¿­ Á¤º¸ ¾ò±â
F$GETQUI ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÀÏ°ý ó¸® ´ë±â¿­ ¹× Àμ⠴ë±â¿­¿¡ ´ëÇÑ ¿©·¯ °¡Áö À¯ÇüÀÇ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ´ë±â¿­ÀÇ ÀÛ¾÷ ¹× ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ¸·Á¸é ÇØ´ç ÀÛ¾÷¿¡ ´ëÇÑ Àб⠾׼¼½º ±ÇÇÑÀ̳ª SYSPRV ±ÇÇÑ ¶Ç´Â OPER ±ÇÇÑÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù.
´ÙÀ½ º¸±â´Â ÀÏ°ý ó¸® ´ë±â¿­ VAX1_BATCH°¡ Áß´Ü »óÅ¿¡ ÀÖ´ÂÁö È®ÀÎÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù. ¹ÝȯµÈ °ªÀº TrueÀ̰ųª FalseÀÔ´Ï´Ù. ´ë±â¿­ÀÌ ÁߴܵÇÁö ¾Ê¾ÒÀ¸¸é ¸í·É ÇÁ·Î½ÃÀú°¡ ÀÛ¾÷À» ´ë±â¿­·Î Àü¼ÛÇÕ´Ï´Ù.
$ QSTOPPED = F$GETQUI("DISPLAY_QUEUE", "QUEUE_STOPPED", "VAX1_BATCH")
$ IF QSTOPPED THEN GOTO NOBATCH
$ SUBMIT/QUEUE=VAX1_BATCH TEST.COM
$ NOBATCH:
.
.
.
ÇÁ·Î¼¼½º Á¤º¸ ¾ò±â
F$PID ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é °ËÅäÇÒ ¼ö ÀÖ´Â ¸ðµç ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º Áõ¸í¼­(PID)¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ÇÁ·Î¼¼½ºÀÇ PID ¹øÈ£¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
WORLD ±ÇÇÑÀÌ ÀÖ´Â °æ¿ì ½Ã½ºÅÛÀÇ ¸ðµç ÇÁ·Î¼¼½º
GROUP ±ÇÇÑÀÌ ÀÖ´Â °æ¿ì ±×·ìÀÇ ¸ðµç ÇÁ·Î¼¼½º
GROUP ¶Ç´Â WORLD ±ÇÇÑÀÌ ¸ðµÎ ¾ø´Â °æ¿ì »ç¿ëÀÚ ÇÁ·Î¼¼½º
PID ¹øÈ£¸¦ ¾ò¾úÀ¸¸é F$GETJPI ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÇÁ·Î¼¼½º¿¡ ´ëÇÑ Æ¯Á¤ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ º¸±â´Â °ËÅäÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ PID ¹øÈ£¸¦ ¾ò°í Ç¥½ÃÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.
$ ! Display the time when this procedure
$ ! begins executing.
$ WRITE SYS$OUTPUT F$TIME()
$ !
$ CONTEXT = ""$ START:
$ ! Obtain and display PID numbers until
$ ! F$PID returns a null string.
$ !
$ PID = F$PID(CONTEXT)
$ IF PID .EQS. "" THEN EXIT
$ WRITE SYS$OUTPUT "Pid --- ''PID'"$ GOTO START
½Ã½ºÅÛ¿¡¼­´Â ±âÈ£ CONTEXT¸¦ »ç¿ëÇÏ¿© PID ¹øÈ£ÀÇ ½Ã½ºÅÛ ¸ñ·Ï ¾È¿¡ Æ÷ÀÎÅ͸¦ À¯ÁöÇÕ´Ï´Ù. ·çÇÁ¸¦ Åë°úÇÒ ¶§¸¶´Ù ½Ã½ºÅÛÀº Æ÷ÀÎÅ͸¦ º¯°æÇÏ¿© ¸ñ·Ï¿¡¼­ ´ÙÀ½ PID ¹øÈ£¸¦ ã½À´Ï´Ù. PID ¹øÈ£°¡ ¸ðµÎ Ç¥½ÃµÇ¸é ÇÁ·Î½ÃÀú°¡ Á¾·áµË´Ï´Ù.
´ÙÀ½ º¸±â¿¡¼­ ÇÁ·Î½ÃÀú´Â °¢ ÇÁ·Î¼¼½ºÀÇ PID ¹øÈ£¿Í UIC¸¦ Ç¥½ÃÇÕ´Ï´Ù.
$ CONTEXT = ""$ START:
$ ! Obtain and display PID numbers and UICs.
$ !
$ PID = F$PID(CONTEXT)
$ IF PID .EQS. "" THEN EXIT
$ UIC = F$GETJPI(PID,"UIC")
$ WRITE SYS$OUTPUT "Pid --- ''PID' Uic--- ''UIC' "$ GOTO START
´ÙÀ½°ú °°ÀÌ WRITE ¸í·É ³»¿¡ F$GETJPI ÇÔ¼ö¸¦ Æ÷ÇÔÇÏ¿© ÀÌ ¸í·É ÇÁ·Î½ÃÀú¸¦ ª°Ô ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
$ CONTEXT = ""$ START:
$ PID = F$PID(CONTEXT)
$ IF PID .EQS. "" THEN EXIT
$ WRITE SYS$OUTPUT "Pid --- ''PID' Uic --- ''F$GETJPI(PID,"UIC")'"$ GOTO START
F$CONTEXT ·º½ÃÄ® ÇÔ¼ö
OpenVMS Cluster ½Ã½ºÅÛÀÇ ³ëµå·ÎºÎÅÍ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ¸·Á¸é F$CONTEXT ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ.
´ÙÀ½ º¸±â¿¡¼­´Â ¼±Åà Á¶°ÇÀ» ¼³Á¤Çϱâ À§ÇØ F$CONTEXT°¡ ¼¼ ¹ø È£ÃâµË´Ï´Ù.
$! Establish an error and Ctrl/Y handler.
$!
$ ON ERROR THEN GOTO error
$ ON CONTROL_Y THEN GOTO error
$!
$ ctx = ""
$ temp = F$CONTEXT ("PROCESS", ctx, "NODENAME", "*","EQL") [1]
$ temp = F$CONTEXT ("PROCESS", ctx, "USERNAME", "M*,SYSTEM","EQL") [2]
$ temp = F$CONTEXT ("PROCESS", ctx, "CURPRIV", "SYSPRV,OPER", "ALL") [3]
$!
$!Loop over all processes that meet the selection criteria.
$!Print the PID number and the name of the image for each process.
$!
$loop: [4]
$ pid = F$PID(ctx)
$ IF pid .EQS. ""$ THEN
$ GOTO endloop
$ ELSE
$ image = F$GETJPI(pid,"IMAGNAME") [5]
$ SHOW SYMBOL pid
$ WRITE SYS$OUTPUT image [6]
$ GOTO loop
$ ENDIF
$!The loop over the processes has ended.
$!
$endloop:
$!
$ EXIT
$!
$!Error handler. Clean up the context's memory with
$!the CANCEL selection item keyword.
$!
$error:
$ IF F$TYPE(ctx) .eqs. "PROCESS_CONTEXT" THEN - [7]
-$ temp = F$CONTEXT ("PROCESS", ctx, "CANCEL") [8]
$!
$ EXIT
º¸±â¸¦ °ËÅäÇÒ ¶§ ´ÙÀ½ ³»¿ë¿¡ À¯ÀÇÇϽʽÿÀ.
[1] ù ¹ø° È£Ãâ¿¡¼­´Â OpenVMS Cluster ½Ã½ºÅÛÀÇ ¸ðµç ³ëµå¸¦ °Ë»öÇϵµ·Ï ¿äûÇÕ´Ï´Ù.
[2] µÎ ¹ø° È£Ãâ¿¡¼­´Â »ç¿ëÀÚ À̸§ÀÌ MÀ¸·Î ½ÃÀÛÇϰųª SYSTEMÀÎ ÇÁ·Î¼¼½º¸¸ ó¸®ÇÒ °ÍÀ» ¿äûÇÕ´Ï´Ù.
[3] ¼¼ ¹ø° È£ÃâÀº ÇöÀç ±ÇÇÑ¿¡ SYSPRV(½Ã½ºÅÛ ±ÇÇÑ)¿Í OPER(¿î¿µÀÚ)¸¦ ¸ðµÎ Æ÷ÇÔÇÏ°í ´Ù¸¥ ±ÇÇѵµ °¡Áú ¼ö ÀÖ´Â ÇÁ·Î¼¼½º¸¸ ¼±ÅÃÇϵµ·Ï Á¦ÇÑÇÕ´Ï´Ù.
[4] ·¹À̺í loop¡±°ú endloop »çÀÌÀÇ ¸í·ÉÇàÀº °è¼Ó F$PID¸¦ È£ÃâÇÏ¿© F$CONTEXT È£Ãâ¿¡ ¼³Á¤µÈ Á¶°Ç¿¡ ¸Â´Â ÇÁ·Î¼¼½º¸¦ ¾ò½À´Ï´Ù.
[5] °¢ PID ¹øÈ£¸¦ °Ë»öÇÑ ÈÄ ÇÁ·Î¼¼½º¿¡¼­ ½ÇÇà ÁßÀÎ À̹ÌÁö À̸§À» ¹ÝȯÇϱâ À§ÇØ F$GETJPI°¡ È£ÃâµË´Ï´Ù.
[6] ¸¶Áö¸·À¸·Î ÇÁ·Î½ÃÀú¿¡¼­ À̹ÌÁö À̸§À» Ç¥½ÃÇÕ´Ï´Ù.
[7] ¿À·ù³ª Ctrl/Y ÀÛ¾÷ÀÌ ¹ß»ýÇÏ´Â °æ¿ì ÄÁÆ®·ÑÀº error·Î Àü´ÞµÇ°í ÇÊ¿äÇÑ °æ¿ì ÄÁÅؽºÆ®°¡ ´ÝÈü´Ï´Ù.
[8] PROCESS_CONTEXT ±âÈ£ À¯Çü¿¡ ´ëÇÑ °Ë»ç¿¡ À¯ÀÇÇϽʽÿÀ. ±âÈ£°¡ ÀÌ À¯ÇüÀÌ¸é ¼±Åà Á¶°ÇÀº F$CONTEXT¿¡ ´ëÇÑ È£Ãâ¿¡ ÀÇÇØ Ãë¼ÒµÇ¾î¾ß ÇÕ´Ï´Ù. ±âÈ£°¡ PROCESS_CONTEXT À¯ÇüÀÌ ¾Æ´Ñ °æ¿ì¿¡´Â ¼±Åà Á¶°ÇÀÌ F$CONTEXT¿¡ ¾ÆÁ÷ ¼³Á¤µÇÁö ¾Ê¾Ò°Å³ª, ¶Ç´Â ¿À·ù°¡ ¹ß»ýÇϰųª ÇÁ·Î¼¼½º ¸ñ·Ï ³¡¿¡ µµ´ÞÇÒ ¶§±îÁö ±âÈ£°¡ »ç¿ëµÈ °ÍÀÔ´Ï´Ù.
ÆÄÀÏ ¹× ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸ ¾ò±â
´ÙÀ½ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏ ¹× ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 15-4
F$DEVICE
ÁöÁ¤ÇÑ ¼±Åà Á¶°ÇÀ» ¸¸Á·ÇÏ´Â ½Ã½ºÅÛÀÇ ¸ðµç ÀåÄ¡ À̸§À» ¹ÝȯÇÕ´Ï´Ù.
F$FILE_ATTRIBUTES
ÆÄÀÏ ¼Ó¼º¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$GETDVI
ÁöÁ¤µÈ ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$PARSE
ÆÄÀÏ ÁöÁ¤ ¹æ¹ýÀ» ±¸¹® ºÐ¼®ÇÏ°í ¿äûÇÑ Çʵ带 ¹ÝȯÇÕ´Ï´Ù.
F$SEARCH
µð·ºÅ丮¿¡¼­ ÆÄÀÏÀ» °Ë»öÇÕ´Ï´Ù.

ÀåÄ¡ °Ë»ö
½Ã½ºÅÛ ¼­ºñ½º $GETDVI¸¦ »ç¿ëÇÏ¿© ƯÁ¤ ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ¸·Á¸é ÀåÄ¡ À̸§À» ¼­ºñ½º¿¡ Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ÀåÄ¡ À̸§À» ¸ð¸£´Â °æ¿ì ·º½ÃÄ® ÇÔ¼ö F$DEVICE¸¦ »ç¿ëÇÏ¿© ÀåÄ¡ À̸§À» ãÀ» ¼ö ÀÖ½À´Ï´Ù.
F$DEVICE ÇÔ¼ö¸¦ »ç¿ëÇϸé ÀåÄ¡ À̸§, ÀåÄ¡ Ŭ·¡½º ¶Ç´Â ÀåÄ¡ À¯ÇüÀ¸·Î ¿ÍÀϵåÄ«µå °Ë»öÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀåÄ¡ À¯ÇüÀ¸·Î °Ë»öÇÏ´Â °æ¿ì ÀåÄ¡ Ŭ·¡½ºµµ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
¸í·É ÇÁ·Î½ÃÀúÀÇ ·çÇÁ¿¡ F$DEVICE ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÁöÁ¤ÇÑ ¼±Åà Á¶°Ç°ú ÀÏÄ¡ÇÏ´Â ÀåÄ¡ À̸§À» ¹ÝȯÇÒ ¼ö ÀÖ½À´Ï´Ù. F$DEVICE ÇÔ¼ö°¡ ½ÇÇàµÉ ¶§¸¶´Ù ¼±Åà Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â ½Ã½ºÅÛ¿¡¼­ ±× ´ÙÀ½ ÀåÄ¡¸¦ ¹ÝȯÇÕ´Ï´Ù. ƯÁ¤ ¼ø¼­·Î ÀåÄ¡°¡ ¹ÝȯµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ¸¶Áö¸· ÀåÄ¡ À̸§ÀÌ ¹ÝȯµÈ F$DEVICE ÇÔ¼ö¸¦ ´Ù½Ã È£ÃâÇϸé null ¹®ÀÚ¿­ÀÌ ¹ÝȯµË´Ï´Ù.
´ÙÀ½ ¸í·É ÇÁ·Î½ÃÀú´Â ¹øÈ£°¡ 0ÀÎ ÀåÄ¡¿¡¼­ ¸ðµç RA60ÀÇ ÀåÄ¡ À̸§À» Ç¥½ÃÇÕ´Ï´Ù.
$ START:
$ DEVICE_NAME = F$DEVICE("*0:","DISK","RA60")
$ IF DEVICE_NAME .EQS. "" THEN EXIT
$ SHOW SYMBOL DEVICE_NAME
$ GOTO START
µð·ºÅ丮¿¡¼­ ÆÄÀÏ °Ë»ö
ÆÄÀÏÀ» ó¸®Çϱâ Àü¿¡ ¸í·É ÇÁ·Î½ÃÀú´Â ÆÄÀÏÀÌ Á¸ÀçÇÏ´ÂÁö Å×½ºÆ®Çϱâ À§ÇØ F$SEARCH ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ¸í·É ÇÁ·Î½ÃÀú´Â F$PARSE¸¦ »ç¿ëÇÏ¿© ÀåÄ¡ ¹× µð·ºÅ丮 ¹®ÀÚ¿­À» STATS.DAT ÆÄÀÏ¿¡ Àû¿ëÇÕ´Ï´Ù. ±×·± ´ÙÀ½ ÇÁ·Î½ÃÀú¿¡¼­ F$SEARCH ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© STATS.DATÀÌ DISK3:[JONES.WORK]¿¡ ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù. ÆÄÀÏÀÌ ÀÖÀ¸¸é ¸í·É ÇÁ·Î½ÃÀú¿¡¼­ ÆÄÀÏÀ» ó¸®ÇÕ´Ï´Ù. ÆÄÀÏÀÌ ¾øÀ¸¸é ¸í·É ÇÁ·Î½ÃÀú´Â ´Ù¸¥ ÀÔ·Â ÆÄÀÏÀ» ÀÔ·ÂÇ϶ó´Â ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÕ´Ï´Ù.
$ FILE = F$PARSE("STATS.DAT","DISK3:[JONES.WORK]",,,"SYNTAX_ONLY")
$ IF F$SEARCH(FILE) .EQS. "" THEN GOTO GET_FILE
$ PROCESS_FILE:
.
.
.
$ GET_FILE:
$ INQUIRE FILE "File name"$ GOTO PROCESS_FILE
ÆÄÀÏÀÌ ÀÖ´ÂÁö È®ÀÎÇÑ ´ÙÀ½ ÇÁ·Î½ÃÀú´Â F$PARSE ¶Ç´Â F$FILE_ATTRIBUTES ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏ¿¡ ´ëÇÑ Ãß°¡ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
$ IF F$SEARCH("STATS.DAT") .EQS. "" THEN GOTO GET_FILE
$ PROCESS_FILE:
$ NAME = F$PARSE("STATS.DAT",, "NAME")
.
.
.
$ GET_FILE:
$ INQUIRE FILE "File name"$ GOTO PROCESS_FILE
ÆÄÀÏÀÇ ÀÌÀü ¹öÀü »èÁ¦
¸í·É ÇÁ·Î½ÃÀú°¡ Á¾·áµÈ ÈÄ¿¡ ÇÁ·Î½ÃÀú¿¡ ÇÊ¿ä ¾ø´Â ÆÄÀÏÀ» ¸¸µå´Â °æ¿ì¿¡´Â ÇØ´ç ÇÁ·Î½ÃÀú¸¦ ³¡³»±â Àü¿¡ ÀÌ ÆÄÀÏÀ» »èÁ¦Çϰųª Áö¿ö¾ß ÇÕ´Ï´Ù. °¡Àå ÃֽŠ¹öÀüÀ» Á¦¿ÜÇÑ ¸ðµç ¹öÀüÀ» »èÁ¦ÇÏ·Á¸é PURGE ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ. ÆÄÀÏÀÇ Æ¯Á¤ ¹öÀüÀ» »èÁ¦ÇÏ·Á¸é DELETE ¸í·É¿¡ ¹öÀü ¹øÈ£¸¦ »ç¿ëÇÏ°í, ÆÄÀÏÀÇ ¸ðµç ¹öÀüÀ» »èÁ¦ÇÏ·Á¸é DELETE ¸í·É°ú ÇÔ²² ¹öÀü Çʵ忡 ¿ÍÀϵåÄ«µå ¹®ÀÚ¸¦ »ç¿ëÇϽʽÿÀ.
¸í·É ÇÁ·Î½ÃÀú ³»¿¡¼­ DELETE ¸í·ÉÀ» »ç¿ëÇÒ ¶§ ¿À·ù ¸Þ½ÃÁö¸¦ ÇÇÇÏ·Á¸é ÆÄÀÏÀ» »èÁ¦Çϱâ Àü¿¡ F$SEARCH ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀÌ ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ. ¿¹¸¦ µé¾î, ƯÁ¤ ¸ðµâÀÌ ½ÇÇàµÇ´Â °æ¿ì¿¡¸¸ TEMP.DAT¶ó´Â ÆÄÀÏÀ» ¸¸µå´Â ¸í·É ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ¸í·ÉÇàÀº TEMP.DAT°¡ Á¸ÀçÇÏ´Â °æ¿ì¿¡¸¸ DELETE ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
$ IF F$SEARCH("TEMP.DAT") .NES. "" THEN DELETE TEMP.DAT;*
³í¸® À̸§ º¯È¯
´ÙÀ½ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ³í¸® À̸§À» º¯È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 15-5
F$LOGICAL
³í¸® À̸§ÀÇ µî°¡ ¹®ÀÚ¿­À» ¹ÝȯÇÕ´Ï´Ù.
F$TRNLNM
³í¸® À̸§ÀÇ µî°¡ ¹®ÀÚ¿­À̳ª ¿äûµÈ ¼Ó¼º Áß Çϳª¸¦ ¹ÝȯÇÕ´Ï´Ù.

ÁÖ) F$TRNLNM ÇÔ¼ö´Â OpenVMS ¿î¿µ üÁ¦ÀÇ ÀÌÀü ¹öÀü¿¡¼­ »ç¿ëµÇ¾ú´ø F$LOGICAL ÇÔ¼öº¸´Ù ¿ì¼±ÇÕ´Ï´Ù. ¸í·É ÇÁ·Î½ÃÀú¿¡¼­ ÇöÀç ½Ã½ºÅÛ ±â¼úÀ» »ç¿ëÇÏ¿© ³í¸® À̸§À» ó¸®ÇÏ°Ô ÇÏ·Á¸é F$LOGICAL ´ë½Å F$TRNLNMÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
ÀϺΠ»óȲ¿¡¼­´Â ¸í·É ÇÁ·Î½ÃÀú¿¡¼­ ±âÈ£ ´ë½Å ³í¸® À̸§À» º¯¼ö·Î »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. º¸Åë ÇÁ·Î±×·¥µéÀº DCL ±âÈ£¿¡ ¾×¼¼½ºÇÏ´Â °Íº¸´Ù ´õ ½±°Ô ³í¸® À̸§¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ¸í·É ÇÁ·Î½ÃÀú¿¡¼­ ½ÇÇàÇÏ´Â ÇÁ·Î±×·¥¿¡ Á¤º¸¸¦ Àü´ÞÇÏ·Á¸é ±âÈ£¸¦ »ç¿ëÇÏ¿© Á¤º¸¸¦ ¾òÀº ´ÙÀ½ DEFINEÀ̳ª ASSIGN ¸í·ÉÀ» »ç¿ëÇÏ¿© ±âÈ£ °ªÀ» ³í¸® À̸§°ú ÀÏÄ¡½Ãų ¼ö ÀÖ½À´Ï´Ù.
F$TRNLNM ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ³í¸® À̸§ÀÇ °ªÀ» È®ÀÎÇÑ ´ÙÀ½ ÀÌ °ªÀ» ±âÈ£¿¡ ÇÒ´çÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
´ÙÀ½ º¸±â´Â NAMES¶ó´Â ³í¸® À̸§ÀÌ Á¤ÀǵǾî ÀÖ´ÂÁö Å×½ºÆ®ÇÕ´Ï´Ù. ³í¸® À̸§ÀÌ Á¤ÀǵǾî ÀÖÀ¸¸é ÇÁ·Î½ÃÀú¿¡¼­ PAYROLL.EXE¸¦ ½ÇÇàÇÕ´Ï´Ù. ³í¸® À̸§ÀÌ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¸é ±âÈ£ FILEÀÇ °ªÀ» ¾òÀº ´ÙÀ½ ÀÌ °ªÀ» »ç¿ëÇÏ¿© ³í¸® À̸§ NAMES¸¦ ¸¸µì´Ï´Ù. PAYROLL.EXE´Â ³í¸® À̸§ NAMES¸¦ »ç¿ëÇÏ¿© Á÷¿ø À̸§ ÆÄÀÏÀ» ÂüÁ¶ÇÕ´Ï´Ù.
$ ! Make sure that NAMES is defined.
$ IF F$TRNLNM("NAMES") .NES. "" THEN GOTO ALL_SET
$ INQUIRE FILE "File with employee names"$ DEFINE NAMES 'FILE'
$ !
$ ! Run PAYROLL, using the file indicated by NAMES.
$ ALL_SET:
$ RUN PAYROLL
.
.
.
ÀÌ ¸í·É ÇÁ·Î½ÃÀú´Â ÇÁ·Î±×·¥ PAYROLL¿¡ »ç¿ëµÇ´Â ³í¸® À̸§À» Á¤ÀÇÇÕ´Ï´Ù.
$ DEFINE NAMES DISK4:[JONES]EMPLOYEE_NAMES.DAT
$ RUN PAYROLL
.
.
.
$ WRITE SYS$OUTPUT "Finished processing ",F$TRNLNM("NAMES")
ÇÁ·Î½ÃÀú ³¡¿¡¼­ WRITE ¸í·ÉÀº ÆÄÀÏÀÌ Ã³¸®µÇ¾ú´ÂÁö ³ªÅ¸³»´Â ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÕ´Ï´Ù.
¹®ÀÚ¿­ Á¶ÀÛ
´ÙÀ½ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¹®ÀÚ¿­À» Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 15-6
F$CVTIME
½Ã°£ ¹®ÀÚ¿­¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇÕ´Ï´Ù.
F$EDIT
¹®ÀÚ¿­À» ÆíÁýÇÕ´Ï´Ù.
F$ELEMENT
¿ä¼Ò°¡ ±¸ºÐ ±âÈ£·Î ±¸ºÐµÇ¾î ÀÖ´Â ¹®ÀÚ¿­¿¡¼­ ¿ä¼Ò¸¦ ÃßÃâÇÕ´Ï´Ù.
F$EXTRACT
¹®ÀÚ¿­ÀÇ ¼½¼ÇÀ» ÃßÃâÇÕ´Ï´Ù.
F$FAO
Ãâ·Â ¹®ÀÚ¿­ Çü½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù.
F$LENGTH
¹®ÀÚ¿­ÀÇ ±æÀ̸¦ °áÁ¤ÇÕ´Ï´Ù.
F$LOCATE
¹®ÀÚ¿­ ³»¿¡¼­ ¹®ÀÚ³ª ºÎºÐ ¹®ÀÚ¿­À» ã¾Æ ¿ÀÇÁ¼ÂÀ» ¹ÝȯÇÕ´Ï´Ù.

¹®ÀÚ¿­À̳ª ¹®ÀÚ°¡ ÀÖ´ÂÁö È®ÀÎ
¹®ÀÚ¿­À» °ËÅäÇÏ´Â ÀϹÝÀûÀÎ ÀÌÀ¯´Â ¹®ÀÚ¿­ ³»¿¡ ¹®ÀÚ ¶Ç´Â ºÎºÐ ¹®ÀÚ¿­ÀÌ ÀÖ´ÂÁö È®ÀÎÇϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. È®ÀÎÇÏ·Á¸é F$LENGTH ¹× F$LOCATE ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ. F$LOCATE ÇÔ¼ö¿¡¼­ ¹ÝȯÇÏ´Â °ªÀÌ F$LENGTH ÇÔ¼ö¿¡¼­ ¹ÝȯÇÏ´Â °ª°ú °°À¸¸é ã´Â ¹®ÀÚ°¡ ¾ø´Â °ÍÀÔ´Ï´Ù.
´ÙÀ½ ÇÁ·Î½ÃÀú¿¡´Â ¹öÀü ¹øÈ£°¡ Æ÷ÇÔµÈ ÆÄÀÏ À̸§ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¹öÀü ¹øÈ£°¡ ÀÖ´ÂÁö È®ÀÎÇϱâ À§ÇØ ÇÁ·Î½ÃÀú¿¡¼­´Â ÆÄÀÏ À̸§ÀÇ ¹öÀü ¹øÈ£ ¾Õ¿¡ ÀÖ´Â ¼¼¹ÌÄÝ·Ð(;)ÀÌ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ÆÄÀÏ À̸§¿¡ Æ÷ÇԵǾî ÀÖ´ÂÁö Å×½ºÆ®ÇÕ´Ï´Ù.
$ INQUIRE FILE "Enter file (include version number)"
$ IF F$LOCATE(";", FILE) .EQ. F$LENGTH(FILE) THEN -
GOTO NO_VERSION
.
.
.
F$LOCATE ÇÔ¼ö´Â ¼¼¹ÌÄÝ·ÐÀÇ ¿ÀÇÁ¼ÂÀ» ¹ÝȯÇÕ´Ï´Ù. ¿ÀÇÁ¼ÂÀº 0¿¡¼­ ½ÃÀÛÇÕ´Ï´Ù. µû¶ó¼­ ¼¼¹ÌÄÝ·ÐÀÌ ¹®ÀÚ¿­ÀÇ Ã¹ ¹ø° ¹®ÀÚÀ̸é F$LOCATE ÇÔ¼ö´Â Á¤¼ö 0À» ¹ÝȯÇÕ´Ï´Ù. ¹®ÀÚ¿­ ³»¿¡ ¼¼¹ÌÄÝ·ÐÀÌ ¾øÀ¸¸é F$LOCATE ÇÔ¼ö´Â ¹®ÀÚ¿­¿¡¼­ ¸¶Áö¸· ¹®ÀÚÀÇ ¿ÀÇÁ¼Âº¸´Ù Çϳª Å« ¿ÀÇÁ¼ÂÀ» ¹ÝȯÇÕ´Ï´Ù. ÀÌ °ªÀº ¼ýÀÚ 1·Î ½ÃÀÛÇÏ´Â ¹®ÀÚ¿­ ±æÀ̸¦ ÃøÁ¤ÇÏ´Â F$LENGTH¿¡¼­ ¹ÝȯÇÏ´Â ±æÀÌ¿Í °°½À´Ï´Ù.
¹®ÀÚ¿­ÀÇ ÀϺΠÃßÃâ
¹®ÀÚ¿­ÀÇ ÀϺθ¦ ÃßÃâÇÏ·Á¸é F$EXTRACT ÇÔ¼ö³ª F$ELEMENT ÇÔ¼ö Áß Çϳª¸¦ »ç¿ëÇϽʽÿÀ. Á¤ÀÇµÈ ¿ÀÇÁ¼Â¿¡¼­ ½ÃÀÛÇÏ´Â ºÎºÐ ¹®ÀÚ¿­À» ÃßÃâÇÏ·Á¸é F$EXTRACT ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ. µÎ °³ÀÇ ±¸ºÐ ±âÈ£ »çÀÌ¿¡ ÀÖ´Â ¹®ÀÚ¿­ÀÇ ÀϺθ¦ ÃßÃâÇÏ·Á¸é F$ELEMENT ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ. ÀÌ·¯ÇÑ ÇÔ¼ö Áß Çϳª¸¦ »ç¿ëÇÏ·Á¸é ±¸¹® ºÐ¼®ÇÒ ¹®ÀÚ¿­ÀÇ ÀÏ¹Ý Çü½ÄÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ÆÄÀÏ ÁöÁ¤ ¹æ¹ýÀ̳ª ½Ã°£ ¹®ÀÚ¿­À» ±¸¹® ºÐ¼®ÇÏ´Â µ¥´Â F$EXTRACT³ª F$ELEMENT¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ´ë½Å F$PARSE³ª F$CVTIMEÀ» »ç¿ëÇÏ¿© ÆÄÀÏ ÁöÁ¤ ¹æ¹ýÀ̳ª ½Ã°£ ¹®ÀÚ¿­¿¡¼­ ÇÊ¿äÇÑ ºÎºÐÀ» ÃßÃâÇϽʽÿÀ.
±×¸®°í ±×·ì À̸§À» ÃßÃâÇÒ ¶§ ±×·ì À̸§ÀÇ ±æÀ̵µ °°ÀÌ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
¹®ÀÚ¿­ÀÇ ´Ù¸¥ ºÎºÐÀ» ±¸ºÐÇÏ´Â ±¸ºÐ ±âÈ£°¡ ¹®ÀÚ¿­¿¡ ÀÖÀ¸¸é F$ELEMENT ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¿øÇÏ´Â ºÎºÐÀ» ÃßÃâÇϽʽÿÀ. F$ELEMENT¸¦ »ç¿ëÇÏ¸é ½°Ç¥ »çÀÌÀÇ ¹®ÀÚ¿­ ºÎºÐÀ» ÃßÃâÇϹǷΠ´Ù¾çÇÑ ¾×¼¼½º À¯ÇüÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ½Ã½ºÅÛ ¾×¼¼½º¸¦ È®ÀÎÇÏ·Á¸é ù ¹ø° ¿ä¼Ò¸¦ °¡Á®¿À°í, ¼ÒÀ¯ÀÚ ¾×¼¼½º¸¦ È®ÀÎÇÏ·Á¸é µÎ ¹ø° ¿ä¼Ò¸¦ °¡Á®¿À´Â ½ÄÀ¸·Î 󸮵˴ϴÙ. F$ELEMENT ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§ ¿ä¼Ò ¼ýÀÚ´Â 0¿¡¼­ ½ÃÀÛÇÕ´Ï´Ù. Áï, ³× ¹ø° ¿ä¼Ò¸¦ ÁöÁ¤ÇÏ·Á¸é Á¤¼ö 3À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀ½ ¸í·É ÇÁ·Î½ÃÀú´Â F$EXTRACT ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© UICÀÇ ±×·ì ºÎºÐÀ» ÃßÃâÇÕ´Ï´Ù. ÀÌ·¸°Ô Çϸé ÇÁ·Î½ÃÀú¿¡¼­ »ç¿ëÀÚÀÇ UIC ±×·ì¿¡ µû¶ó ´Ù¸¥ ¸í·É ÁýÇÕÀ» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
$ UIC = F$USER()
$ GROUP_LEN = F$LOCATE(",",UIC) - 1
$ GROUP = F$EXTRACT(1,GROUP_LEN, UIC)
$ GOTO 'GROUP'_SECTION
.
.
.
$ WRITERS_SECTION:
.
.
.
$ MANAGERS_SECTION:
.
.
.
¸ÕÀú ÇÁ·Î½ÃÀú¿¡¼­ F$USER ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© UIC¸¦ È®ÀÎÇÕ´Ï´Ù. ±×·± ´ÙÀ½ ÇÁ·Î½ÃÀú´Â F$LOCATE ÇÔ¼ö·Î ½°Ç¥ÀÇ ¿ÀÇÁ¼ÂÀ» ã¾Æ ±×·ì À̸§ ±æÀ̸¦ È®ÀÎÇÕ´Ï´Ù. ½°Ç¥´Â UICÀÇ »ç¿ëÀÚ ºÎºÐ¿¡¼­ ±×·ìÀ» ºÐ¸®ÇÕ´Ï´Ù. ¿ÞÂÊ ´ë°ýÈ£¿Í ½°Ç¥ »çÀÌÀÇ ¸ðµç ³»¿ëÀÌ ±×·ì À̸§ ºÎºÐÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, UIC [WRITERS,SMITH]¿¡¼­ ±×·ì À̸§Àº WRITERSÀÔ´Ï´Ù.
±æÀ̸¦ È®ÀÎÇÑ ´ÙÀ½ ÇÁ·Î½ÃÀú¿¡¼­´Â F$EXTRACT ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ±×·ì À̸§À» ÃßÃâÇÕ´Ï´Ù. ¿ÀÇÁ¼Â 1·Î ½ÃÀÛÇÏ´Â À̸§Àº ½°Ç¥ ¾ÕÀÇ ¹®ÀÚ¿¡¼­ ³¡³³´Ï´Ù. ¸¶Áö¸·À¸·Î ½ÇÇàÀ» ÀûÀýÇÑ ·¹À̺í·Î Áö½ÃÇÕ´Ï´Ù.
´ÙÀ½ º¸±â´Â ±×·ì À̸§À» ÃßÃâÇϸ鼭 µ¿½Ã¿¡ ±×·ì À̸§ ±æÀ̸¦ È®ÀÎÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.
$ UIC = F$USER()
$ GROUP = F$EXTRACT(1, F$LOCATE(",",UIC) - 1, UIC)
$ GOTO 'GROUP'_SECTION
´ÙÀ½ º¸±â´Â º¸È£ ÄÚµåÀÇ °¢ ¾×¼¼½º À¯ÇüÀ» ½°Ç¥·Î ±¸ºÐÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.
$ PROT = F$ENVIRONMENT("PROTECTION")
$ SHOW SYMBOL PROT
PROT = "SYSTEM=RWED, OWNER=RWED, GROUP=RE, WORLD"
ÀÌ º¸±âÀÇ ¸í·ÉÀº ±âº» º¸È£ Äڵ忡¼­ world ¾×¼¼½º ºÎºÐ(³× ¹ø° ¿ä¼Ò)À» ÃßÃâÇÕ´Ï´Ù.
$ PROT = F$ENVIRONMENT("PROTECTION")
$ WORLD_PROT = F$ELEMENT(3,",",PROT)
.
.
.
F$ELEMENT ÇÔ¼ö´Â ¼¼ ¹ø° ½°Ç¥¿Í ¹®ÀÚ¿­ ³¡ »çÀÌ¿¡ ÀÖ´Â ¸ðµç ³»¿ëÀ» ¹ÝȯÇÕ´Ï´Ù. µû¶ó¼­ ±âº» º¸È£¿¡¼­ world »ç¿ëÀÚ¿¡°Ô Àб⠾׼¼½º¸¦ Çã¿ëÇÑ °æ¿ì¿¡´Â ¹®ÀÚ¿­ "WORLD=R"ÀÌ ¹ÝȯµË´Ï´Ù.
world ¾×¼¼½º ¹®ÀÚ¿­À» ¾òÀº ÈÄ¿¡ ¹®ÀÚ¿­ ³»¿ëÀ» °ËÅäÇØ¾ß ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
$ PROT = F$ENVIRONMENT("PROTECTION")
$ WORLD_PROT = F$ELEMENT(3,",",PROT)
$ IF F$LOCATE("=", WORLD_PROT) .EQ. F$LENGTH(WORLD_PROT) -
THEN GOTO NO_WORLD_ACCESS
.
.
.
Ãâ·Â ¹®ÀÚ¿­ ¼­½Ä ÁöÁ¤
WRITE ¸í·ÉÀ» »ç¿ëÇÏ¿© ¹®ÀÚ¿­À» ·¹Äڵ忡 ±â·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ·¹ÄÚµå ¿­À» ÁÙ ¸ÂÃãÇÏ·Á¸é F$FAO ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ·¹ÄÚµå Çʵ带 Á¤ÀÇÇÏ°í ÀÌ Çʵ忡 ÇÁ·Î¼¼½º À̸§°ú »ç¿ëÀÚ À̸§À» µÑ ¼ö ÀÖ½À´Ï´Ù. F$FAO ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§ Á¦¾î ¹®ÀÚ¿­À» »ç¿ëÇÏ¿© ·¹Äڵ忡 Çʵ带 Á¤ÀÇÇÑ ´ÙÀ½ ÀÌ Çʵ忡 °ªÀÌ ³õÀ̵µ·Ï ÁöÁ¤ÇϽʽÿÀ.
·¹Äڵ忡¼­ ÇʵåÀÇ ¼­½ÄÀ» ÁöÁ¤ÇÏ´Â ´Ù¸¥ ¹æ¹ýÀº ¹®ÀÚ¿­ ¿À¹ö·¹À̸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ F$FAO ÇÔ¼öÀÇ ±â´ÉÀÌ ¹®ÀÚ¿­ ¿À¹ö·¹À̺¸´Ù ´õ °­·ÂÇÕ´Ï´Ù. F$FAO ÇÔ¼ö¸¦ »ç¿ëÇϸé Á» ´õ ±¤¹üÀ§ÇÑ Ãâ·Â ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ º¸±â¿¡ Ç¥½ÃµÈ ¸í·É ÇÁ·Î½ÃÀú´Â WRITE ¸í·ÉÀ» »ç¿ëÇÏ¿© ½Ã½ºÅÛÀÇ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ÇÁ·Î¼¼½º À̸§°ú PID ¹øÈ£¸¦ Ç¥½ÃÇÕ´Ï´Ù.
$ ! Initialize context symbol to get PID numbers
$ CONTEXT = ""$ ! Write headings
$ WRITE SYS$OUTPUT "Process Name PID"$ !
$ GET_PID:
$ PID = F$PID(CONTEXT)
$ IF PID .EQS. "" THEN EXIT
$ WRITE SYS$OUTPUT F$GETJPI(PID,"PRCNAM")," ", F$GETJPI(PID,"PID")
$ GOTO GET_PID
WRITE ¸í·ÉÀÇ Ãâ·ÂÀº ÇÁ·Î¼¼½º À̸§°ú »ç¿ëÀÚ À̸§ »çÀÌ¿¡ 5°³ÀÇ °ø¹éÀÌ »ðÀÔµÇÁö¸¸ ¿­ÀÇ ÁÙÀ» ¸ÂÃßÁö´Â ¾Ê½À´Ï´Ù.
Process Name PID
MARCHESAND 2CA0049C
TRACTMEN 2CA0043A
FALLON 2CA0043C
ODONNELL 2CA00453
PERRIN 2CA004DE
CHAMPIONS 2CA004E3
ÀÌ º¸±âÀÇ ¸í·É ÇÁ·Î½ÃÀú´Â F$FAO ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© 16ÀÚ Çʵå¿Í 12ÀÚ Çʵ带 Á¤ÀÇÇÕ´Ï´Ù. F$FAO ÇÔ¼ö´Â ù ¹ø° Çʵ忡 ÇÁ·Î¼¼½º À̸§À» µÎ°í °ø¹éÀ» Çϳª µÐ ´ÙÀ½ µÎ ¹ø° Çʵ忡 PID ¹øÈ£¸¦ µÓ´Ï´Ù.
$ ! Initialize context symbol to get PID numbers
$ CONTEXT = ""$ ! Write headings
$ WRITE SYS$OUTPUT "Process Name PID"$ !
$ GET_PID:
$ PID = F$PID(CONTEXT)
$ IF PID .EQS. "" THEN EXIT
$ LINE = F$FAO("!16AS !12AS", F$GETJPI(PID,"PRCNAM"), F$GETJPI(PID,"PID") )
$ WRITE SYS$OUTPUT LINE
$ GOTO GET_PID
ÀÌÁ¦ ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇÏ¸é ¿­ÀÌ Á¤·ÄµË´Ï´Ù.
Process Name PID
MARCHESAND 2CA0049C
TRACTMEN 2CA0043A
FALLON 2CA0043C
ODONNELL 2CA00453
PERRIN 2CA004DE
CHAMPIONS 2CA004E3
´ÙÀ½ º¸±â´Â ¿À¹ö·¹À̸¦ »ç¿ëÇÏ¿© ±âÈ£ RECORDÀÇ Ã¹ ¹ø° 16ÀÚ(¿ÀÇÁ¼Â 0¿¡¼­ ½ÃÀÛ)¿¡ ÇÁ·Î¼¼½º À̸§À» µÓ´Ï´Ù. ±× ´ÙÀ½ 12ÀÚ(¿ÀÇÁ¼Â 17¿¡¼­ ½ÃÀÛ)¿¡ PID ¹øÈ£¸¦ µÓ´Ï´Ù.
$ ! Initialize context symbol to get PID numbers
$ CONTEXT = ""$ ! Write headings
$ WRITE SYS$OUTPUT "Process Name PID"$ !
$ GET_PID:
$ PID = F$PID(CONTEXT)
$ IF PID .EQS. "" THEN EXIT
$ RECORD[0,16]:= 'F$GETJPI(PID,"PRCNAM")'
$ RECORD[17,12]:= 'F$GETJPI(PID,"PID")'
$ WRITE SYS$OUTPUT RECORD
$ GOTO GET_PID
´ÙÀ½ ÇÁ·Î½ÃÀú´Â F$FAO ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¸¸µç ¿­¿¡ °°Àº À¯ÇüÀÇ ¼­½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù.
Process Name PID
MARCHESAND 2CA0049C
TRACTMEN 2CA0043A
FALLON 2CA0043C
ODONNELL 2CA00453
PERRIN 2CA004DE
CHAMPIONS 2CA004E3
µ¥ÀÌÅÍ À¯Çü Á¶ÀÛ
´ÙÀ½ ·º½ÃÄ® ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ¹®ÀÚ¿­¿¡¼­ Á¤¼ö·Î ¶Ç´Â Á¤¼ö¿¡¼­ ¹®ÀÚ¿­·Î º¯È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç¥ 15-7
F$CVSI
¹®ÀÚ¿­¿¡¼­ ºñÆ® Çʵ带 ÃßÃâÇÏ¿© °á°ú¸¦ Á¤¼ö(ºÎÈ£ ÀÖ´Â °ª)·Î º¯È¯ÇÕ´Ï´Ù.
F$CVUI
¹®ÀÚ¿­¿¡¼­ ºñÆ® Çʵ带 ÃßÃâÇÏ¿© °á°ú¸¦ Á¤¼ö(ºÎÈ£ ¾ø´Â °ª)·Î º¯È¯ÇÕ´Ï´Ù.
F$INTEGER
¹®ÀÚ¿­ Ç¥Çö½ÄÀ» Á¤¼ö·Î º¯È¯ÇÕ´Ï´Ù.
F$STRING
Á¤¼ö Ç¥Çö½ÄÀ» ¹®ÀÚ¿­·Î º¯È¯ÇÕ´Ï´Ù.
F$TYPE
±âÈ£ÀÇ µ¥ÀÌÅÍ À¯ÇüÀ» °áÁ¤ÇÕ´Ï´Ù.

µ¥ÀÌÅÍ À¯Çü º¯È¯
Á¤¼ö¿Í ¹®ÀÚ¿­ °£À» º¯È¯ÇÏ·Á¸é F$INTEGER ¹× F$STRING ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ. ¿¹¸¦ µé¾î, ´ÙÀ½ ¸í·É ÇÁ·Î½ÃÀú´Â µ¥ÀÌÅÍ À¯ÇüÀ» º¯È¯ÇÕ´Ï´Ù. ¹®ÀÚ¿­À» ÀÔ·ÂÇÏ¸é ¸í·É ÇÁ·Î½ÃÀú´Â µî°¡ Á¤¼ö¸¦ º¸¿© ÁÝ´Ï´Ù. Á¤¼ö¸¦ ÀÔ·ÂÇÏ¸é ¸í·É ÇÁ·Î½ÃÀú´Â µî°¡ ¹®ÀÚ¿­À» º¸¿© ÁÝ´Ï´Ù. GOTO ¹®¿¡¼­ ·¹À̺í À̸§ÀÇ ¼­½ÄÀ» ÁöÁ¤Çϱâ À§ÇØ F$TYPE ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ À¯ÀÇÇϽʽÿÀ. F$TYPEÀº ±âÈ£ÀÇ µ¥ÀÌÅÍ À¯Çü¿¡ µû¶ó ¡°STRING¡±À̳ª ¡°INTEGER¡±¸¦ ¹ÝȯÇÕ´Ï´Ù.
$ IF P1 .EQS. "" THEN INQUIRE P1 "Value to be converted"$ GOTO CONVERT_'F$TYPE(P1)'
$
$ CONVERT_STRING:
$ WRITE SYS$OUTPUT "The string ''P1' is converted to ''F$INTEGER(P1)'"$ EXIT
$
$ CONVERT_INTEGER:
$ WRITE SYS$OUTPUT "The integer ''P1' is converted to ''F$STRING(P1)'"$ EXIT
Ç¥Çö½Ä Æò°¡
INQUIRE ¹× READ °°Àº ÀϺΠ¸í·ÉÀº ¹®ÀÚ¿­ µ¥ÀÌÅ͸¸ ¹Þ¾ÆµéÀÔ´Ï´Ù. Á¤¼ö Ç¥Çö½ÄÀ¸·Î Æò°¡ÇÒ µ¥ÀÌÅ͸¦ ¾ò´Â µ¥ ÀÌ·¯ÇÑ ¸í·ÉÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â F$INTEGER ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ º¯È¯ÇÏ°í °ªÀ» ±¸ÇØ¾ß ÇÕ´Ï´Ù.
±âÈ£ EXP¸¦ F$INTEGER ÇÔ¼öÀÇ Àμö·Î »ç¿ëÇÒ ¶§ ±âÈ£ EXP ÁÖÀ§¿¡ ¾îÆ÷½ºÆ®·ÎÇÇ(' ' )¸¦ »ðÀÔÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ±âÈ£ ´ëüÀÇ Ã¹ ´Ü°è µ¿¾È DCLÀÌ EXP °ªÀ» ´ëüÇÕ´Ï´Ù.
´ÙÀ½ º¸±â¿¡¼­ F$INTEGER ÇÔ¼ö´Â Á¤¼ö Ç¥Çö½ÄÀÇ °ªÀ» ±¸ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
$ INQUIRE EXP "Enter integer expression"
$ RES = F$INTEGER('EXP')
$ WRITE SYS$OUTPUT "Result is",RES
ÀÌ ¸í·É ÇÁ·Î½ÃÀúÀÇ Ãâ·ÂÀº ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù.
Enter integer expression: 9 + 7
Result is 16
¡°9 + 7¡± °ªÀÌ ´ëüµÇ¾ú½À´Ï´Ù. F$INTEGER ÇÔ¼ö°¡ Àμö ¡°9 + 7¡±À» ó¸®Çϸé Ç¥Çö½ÄÀ» °è»êÇÏ¿© ¿Ã¹Ù¸¥ °á°ú¸¦ ¹ÝȯÇÕ´Ï´Ù.
±âÈ£ÀÇ Á¸Àç ¿©ºÎ È®ÀÎ
±âÈ£°¡ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÏ·Á¸é F$TYPE ÇÔ¼ö¸¦ »ç¿ëÇϽʽÿÀ. F$TYPE ÇÔ¼ö´Â ±âÈ£°¡ Á¤ÀǵǾî ÀÖÁö ¾Ê´Â °æ¿ì null ¹®ÀÚ¿­À» ¹ÝȯÇÕ´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
.
.
.
$ IF F$TYPE(TEMP) .EQS. "" THEN TEMP = "YES"
$ IF TEMP .EQS. "YES" THEN GOTO TEMP_SEC
.
.
.
ÀÌ ÇÁ·Î½ÃÀú¿¡¼­´Â ±âÈ£ TEMP°¡ ÀÌÀü¿¡ Á¤ÀǵǾî ÀÖ¾ú´ÂÁö Å×½ºÆ®ÇÕ´Ï´Ù. Á¤ÀǵǾî ÀÖ¾ú´Ù¸é TEMPÀÇ ÇöÀç °ªÀÌ À¯ÁöµË´Ï´Ù. TEMP°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¸é IF ¹®Àº ¡°YES¡± °ªÀ» TEMP¿¡ ÇÒ´çÇÕ´Ï´Ù.

TOC PREV NEXT INDEX