Fortran ¥é¥¤¥Ö¥é¥ê¡¦¥ê¥Õ¥¡¥ì¥ó¥¹ | ![]() ![]() ![]() ![]() ![]() |
Fortran ¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
¤³¤Î¾Ï¤Ç¤Ï¡¢Fortran ¤Î¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ò¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤ËÀâÌÀ¤·¤Þ¤¹¡£VMS ¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØFORTRAN 77 ¸À¸ì¥ê¥Õ¥¡¥ì¥ó¥¹¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ËܾϤÇÀâÌÀ¤¹¤ë¥ë¡¼¥Á¥ó¤Ë¤Ï¤¹¤Ù¤Æ¡¢Âбþ¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤¬¥Þ¥Ë¥å¥¢¥ë¥é¥¤¥Ö¥é¥ê¤Î¥»¥¯¥·¥ç¥ó 3F ¤ËÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
man -s 3F access
¤ò¼Â¹Ô¤¹¤ë¤È¡¢access
¤È¤¤¤¦¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤Ë´Ø¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ÎÆâÍÆ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£Fortran ¤ä C ¤«¤é¸Æ¤Ó½Ð¤·¤¬²Äǽ¤Ê¾åµ°Ê³°¤Î¿ô³Ø¥ë¡¼¥Á¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¸Æ¤Ó½Ð¤·²Äǽ¤Ê¿ô³Ø¥ë¡¼¥Á¥ó¤Ë¤Ï¡¢
libm
¤älibsunmath
¤Îɸ½à¿ô³Ø¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó (Intro
(3M)»²¾È)¡¢¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤ÎºÇŬ²½¥Ð¡¼¥¸¥ç¥ó¡¢SPARC ¥Ù¥¯¥¿¿ô³Ø¥é¥¤¥Ö¥é¥êlibmvec
¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£¥Ç¡¼¥¿·¿¤Ë¤Ä¤¤¤Æ
ÆÃ¤Ë»Ø¼¨¤¬¤Ê¤¤¸Â¤ê¡¢ËܾϤ˵ºÜ¤¹¤ë´Ø¿ô¥ë¡¼¥Á¥ó¤Ï¡¢ÁȤ߹þ¤ß¥ë¡¼¥Á¥ó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤·¤¿¤¬¤Ã¤Æ¡¢´Ø¿ô¤«¤éÊÖ¤µ¤ì¤ë¥Ç¡¼¥¿·¿¤¬¡¢´Ø¿ô̾¤À¤±¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë²¾Äꤵ¤ì¤ë¥Ç¡¼¥¿·¿¤È¿©¤¤°ã¤¦²ÄǽÀ¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¥æ¡¼¥¶¡¼¤¬ÌÀ¼¨Åª¤Ë¥Ç¡¼¥¿·¿¤òÀë¸À¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
getpid
() ¤ÇINTEGER*4
¤òÌ᤹¾ì¹ç¤Ï¡¢INTEGER*4 getpid
¤ÈÀë¸À¤·¤Ê¤¤¤È¡¢·ë²Ì¤ÎÀµ¤·¤¤½èÍý¤¬Êݾڤµ¤ì¤Þ¤»¤ó (¥Ç¡¼¥¿·¿¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Ê¤¤¤È¡¢´Ø¿ô̾¤¬g
¤Ç³«»Ï¤¹¤ë¤¿¤á¡¢REAL
(¼Â¿ô) ·¿¤Î·ë²Ì¤¬²¾Äꤵ¤ì¤ë)¡£¤Ê¤ª¡¢¤³¤¦¤¤¤Ã¤¿¥ë¡¼¥Á¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤Îµ¡Ç½Í×Ìó¤ÇÌÀ¼¨Åª¤Ê·¿Àë¸Àʸ¤¬³Ð¤¨½ñ¤¤ÎÌÜŪ¤ÇµºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£°ú¿ô¤ª¤è¤ÓÌá¤êÃͤΥǡ¼¥¿»ØÄê¤Ï¡¢
IMPLICIT
ʸ¤ª¤è¤Ó-r8
¡¢-i2
¡¢-dbl
¡¢-xtypemap
¤È¤¤¤Ã¤¿³Æ¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤âÊѹ¹¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¡¢´üÂÔ¤¹¤ë¥Ç¡¼¥¿·¿¤È¼ÂºÝ¤Î¥Ç¡¼¥¿·¿¤¬°ìÃפ·¤Æ¤¤¤Ê¤¤¤È¡¢¥×¥í¥°¥é¥à¤Ïͽ´ü¤·¤Ê¤¤Æ°¤¤ò¤·¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó-r8
¡¢-dbl
¤ò»ØÄꤹ¤ë¤È¡¢INTEGER
´Ø¿ô¤Î¥Ç¡¼¥¿·¿¤ÏINTEGER*8
¤Ë¡¢REAL
´Ø¿ô¤ÏREAL*8
¤Ë¡¢DOUBLE
´Ø¿ô¤ÏDOUBLE*16
¤Ë¤½¤ì¤¾¤ìÊѹ¹¤µ¤ì¤Þ¤¹¡£¤³¤¦¤¤¤Ã¤¿ÌäÂê¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢¥é¥¤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤Ç»ØÄꤹ¤ë´Ø¿ô̾¤ÈÊÑ¿ô¤Ë¤Ä¤¤¤Æ¡¢´üÂÔ¤¹¤ë¤½¤ì¤é¤Î¥µ¥¤¥º¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¼¡¤ÎÎã¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
integer*4 seed, getuidreal*4 ran...seed = 70198val = getuid() + ran(seed)...¾åµ¤ÎÎã¤Î¤è¤¦¤Ë¥µ¥¤¥º¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¤ª¤¯¤È¡¢¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤È¤·¤Æ
-r8
¤È-dbl
¤ò»ØÄꤷ¤Æ¤â¡¢¥é¥¤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ë¥Ç¡¼¥¿·¿¤ÎÊѹ¹¤¬¹Ô¤ï¤ì¤Þ¤»¤ó¡£ÌÀ¼¨Åª¤Ê»ØÄ꤬¹Ô¤ï¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤ì¤é¤Î¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¡¢Í½´ü¤·¤Ê¤¤·ë²Ì¤ò¾·¤¯²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØFortran ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¤ª¤è¤Óf77
(1) ¤Èf95
(1) ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£µì¥ª¥×¥·¥ç¥ó¤Î
-i2
¡¢-r8
¡¢-dbl
¤ÎÂå¤ï¤ê¤Ë¡¢¤è¤ê½ÀÆð¤Ê-xtypemap
¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£Fortran ¥³¥ó¥Ñ¥¤¥é¤Î¹°è¥×¥í¥°¥é¥à¥Á¥§¥Ã¥¯¥ª¥×¥·¥ç¥ó
-Xlist
¤ò»ÈÍѤ¹¤ë¤È¡¢¥é¥¤¥Ö¥é¥ê¥³¡¼¥ëÁ´ÂΤΥǡ¼¥¿·¿¤Î¥ß¥¹¥Þ¥Ã¥Á¤Ë´ØÏ¢¤·¤¿Â¿¿ô¤ÎÌäÂê¤òÇİ®¤Ç¤¤Þ¤¹¡£f77
¤ª¤è¤Óf95
¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ë¹°è¥×¥í¥°¥é¥à¥Á¥§¥Ã¥¯¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØFortran ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¡¢¡ØFortran ¥×¥í¥°¥é¥ß¥ó¥°¥¬¥¤¥É¡Ù¡¢¤ª¤è¤Ó¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Îf77
(1) ¤Èf95
(1) ¤ÇÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£64 ¥Ó¥Ã¥È´Ä¶
¥×¥í¥°¥é¥à¤ò 64 ¥Ó¥Ã¥È¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°´Ä¶¤Çưºî¤¹¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È
(¤Ä¤Þ¤ê¡¢-xarch=v9
¤Þ¤¿¤Ïv9a
¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¡¢64 ¥Ó¥Ã¥È Solaris 7 ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°´Ä¶¤ò¼Â¹Ô¤¹¤ë SPARC ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç¼Â¹Ô²Äǽ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤³¤È)¡¢ÆÃÄê¤Î´Ø¿ô¤ÎÌá¤êÃͤ¬Êѹ¹¤µ¤ì¤Þ¤¹¡£¤³¤ÎÆÃÄê¤Î´Ø¿ô¤Ï¡¢Ä̾malloc
(3F) (74¥Ú¡¼¥¸»²¾È) ¤Ê¤É¤Îɸ½à¥·¥¹¥Æ¥à¥ì¥Ù¥ë¤Î¥ë¡¼¥Á¥ó¤È¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤Ê¤ê¡¢¤½¤Î´Ä¶¤Ë±þ¤¸¤Æ 32 ¥Ó¥Ã¥ÈÃͤޤ¿¤Ï 64 ¥Ó¥Ã¥ÈÃͤò¤È¤Ã¤¿¤ê¡¢Ìᤷ¤¿¤ê¤Ç¤¤Þ¤¹¡£32 ¥Ó¥Ã¥È¤È 64 ¥Ó¥Ã¥È´Ä¶´Ö¤Ç¥³¡¼¥É¤Ë¸ß´¹À¤ò»ý¤¿¤»¤ë¤¿¤á¤Ë¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Î 64 ¥Ó¥Ã¥È¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢É¬¤º 64 ¥Ó¥Ã¥ÈÃͤò¤È¤ë¤Þ¤¿¤ÏÌ᤹ (¤¢¤ë¤¤¤Ï¤³¤ÎξÊý¤ò¹Ô¤¦) ¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£¼¡¤Îɽ¤Ë¡¢64 ¥Ó¥Ã¥È´Ä¶¤Ç»ÈÍѤ¹¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤òɽ¼¨¤·¤Þ¤¹¡£
ɽ 1 64 ¥Ó¥Ã¥È´Ä¶¸þ¤±¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó fseeko64
Â絬ÌÏ¥Õ¥¡¥¤¥ë¤ÎºÆ°ÌÃÖÉÕ¤± 34 ¥Ú¡¼¥¸ ftello64
Â絬ÌÏ¥Õ¥¡¥¤¥ë¤Î°ÌÃÖÉÕ¤± 34 ¥Ú¡¼¥¸ stat64,
¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò·èÄꤹ¤ë 95 ¥Ú¡¼¥¸ fstat64,
lstat64
time64,
¥·¥¹¥Æ¥à»þ´Ö¤ò¼èÆÀ¤·¡¢Ê¸»ú¤ËÊÑ´¹¤¹¤ë¤« 97 ¥Ú¡¼¥¸ ctime64,
·î¡¢Æü¤Ê¤É¤Ëʬ²ò¤¹¤ë gmtine64,
ltime64
qsort64
ÇÛÎó¤ÎÍ×ÁǤò¥½¡¼¥È¤¹¤ë 81 ¥Ú¡¼¥¸
Fortran ¿ô³Ø´Ø¿ô
¼¡¤Î´Ø¿ô¤È¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢Fortran ¿ô³Ø¥é¥¤¥Ö¥é¥ê¤Î°ìÉô¤Ç¤¹¡£¤³¤ì¤é¤Î´Ø¿ô¤È¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢
f77
¤äf95
¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤¹¤Ù¤Æ¤Î¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥ë¡¼¥Á¥ó¤Ë¤Ï¡¢¤½¤Î°ú¿ô¤ÈƱ¤¸¥Ç¡¼¥¿·¿ (ñÀºÅÙ¡¢ÇÜÀºÅÙ¡¢¤Þ¤¿¤Ï 4 ÇÜÀºÅÙ)¤òÌ᤹ÁȤ߹þ¤ß´Ø¿ô¤È¡¢°ú¿ô¤È¤·¤ÆÆÃÄê¤Î¥Ç¡¼¥¿·¿¤ò¤È¤ê¡¢¤½¤ì¤ÈƱ¤¸¥Ç¡¼¥¿·¿¤òÌ᤹ÈóÁȤ߹þ¤ß´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ÎÈóÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¤³¤ì¤ò»²¾È¤¹¤ë¥ë¡¼¥Á¥óÆâ¤ÇÀë¸À¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤¦¤·¤¿¥ë¡¼¥Á¥ó¤ÎÂçȾ¤Ï¡¢C ¸À¸ì¥é¥¤¥Ö¥é¥ê¤Î¥ë¡¼¥Á¥ó¤ËÂФ¹¤ë Fortran ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡Ö¥é¥Ã¥Ñ¡¼¡×¤Ç¤¢¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¡¢É¸½à¤Î Fortran ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤³¤ÎÃæ¤Ë¤Ï¡¢IEEE ¿ä¾©¤Î¥µ¥Ý¡¼¥È´Ø¿ô¤äÆÃ¼ì¤ÊÍð¿ôȯÀ¸´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤ä¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸
libm_single
(3F)¡¢libm_double
(3F)¡¢libm_quadruple
(3F) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¿ô³Ø´Ø¿ô
°Ê²¼¤Ë¡¢¿ô³Ø´Ø¿ô¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£¤³¤ì¤é¤Ï¡¢·¿Àë¸ÀʸÆâ¤ËÆþ¤ì¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£°Ê²¼¤Î´Ø¿ô¤Ï¡¢°ú¿ô¤È¤·¤ÆÃ±ÀºÅÙ¡¢ÇÜÀºÅÙ¡¢¤Þ¤¿¤Ï 4 ÇÜÀºÅ٥ǡ¼¥¿¤ò¤È¤ê¡¢Æ±¤¸¤â¤Î¤òÌᤷ¤Þ¤¹¡£
log(x) acos(x) asind(x) log10(x) atan(x) acosd(x) exp(x) atan2(x,y) atand(x) x**y sinh(x) atan2d(x,y) sin(x) cosh(x) aint(x) cos(x) tanh(x) anint(x) tan(x) sind(x) nint(x)
´Ø¿ô
sind
(x)¡¢cosd
(x)¡¢asind
(x)¡¢acosd
(x)¡¢atand
(x)¡¢atan2d
(x,y) ¤Ï¡¢Fortran ɸ½à¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ã±ÀºÅٴؿô
¤³¤ì¤é¤ÎÉû¥×¥í¥°¥é¥à¤Ï¡¢Ã±ÀºÅ٤οô³Ø´Ø¿ô¤ª¤è¤Ó¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¹¡£
Ä̾°Ê²¼¤Î¿ô³ØÃ±ÀºÅٴؿô¤Ë¥¢¥¯¥»¥¹¤¹¤ë´Ø¿ô¤Ï¡¢Fortran µ¬³Ê¤ÎÁí¾ÎÁȤ߹þ¤ß´Ø¿ô¤È¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£¥Ç¡¼¥¿·¿¤ÏÄ̾ï¤Î·¿·èÄ구§¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Î·¿·èÄê¤òÊÝ»ý¤·¤Æ¤¤¤ë¸Â¤ê¡¢
REAL
ʸ¤Ç¤³¤ì¤é¤Î´Ø¿ô¤Î·¿¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£("r" ¤Ç»Ï¤Þ¤ëÊÑ¿ô¤ÏREAL
·¿¡¢"i" ¤Ç»Ï¤Þ¤ëÊÑ¿ô¤ÏINTEGER
·¿¤Ë¤Ê¤ê¤Þ¤¹)¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢C ¿ô³Ø¥é¥¤¥Ö¥é¥ê¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸ (3M) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤¿¤È¤¨¤Ð¡¢
r_acos
(x) ¤Î¾ì¹ç¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Îacos
(3M) ¤ò»²¾È¤·¤Þ¤¹¡£
- ÊÑ¿ô
c¡¢l¡¢p¡¢s¡¢u¡¢x¡¢y
¤ÏREAL
·¿¤Ç¤¹¡£IMPLICIT
ʸ¤¬Í¸ú¤Ç¡¢"r
" ¤Ç»Ï¤Þ¤ë̾Á°¤òÊ̤Υǡ¼¥¿·¿¤ËÂФ·¤Æ»ØÄꤹ¤ë¾ì¹ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤òREAL
¤È¤·¤ÆÌÀ¼¨Åª¤Ë»ØÄꤷ¤Þ¤¹¡£sind(x)
¤äasind(x)
¤Ê¤É¤Ç¤Ï¡¢¥é¥¸¥¢¥ó¤Ç¤Ï¤Ê¤¯ÅÙ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£»²¾È:
intro
(3M)¡¢¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ùlibm_double : ÇÜÀºÅٴؿô
¼¡¤ÎÉû¥×¥í¥°¥é¥à¤Ï¡¢ÇÜÀºÅ٤οô³Ø´Ø¿ô¤ª¤è¤Ó¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¹¡£
Ä̾¤³¤ì¤é¤Î´Ø¿ô¤Ï Fortran µ¬³Ê¤ÎÁí¾ÎŪ¤ÊÁȤ߹þ¤ß´Ø¿ô¤È¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£¥Ç¡¼¥¿·¿¤Ï¡¢Ä̾ï¤Î¥Ç¡¼¥¿·¿·èÄ구§¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤Þ¤¹¡£
¤³¤ì¤é¤Î
DOUBLE PRECISION
´Ø¿ô¤ÏDOUBLE PRECISION
ʸ¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢C ¥é¥¤¥Ö¥é¥ê¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
d_acos
(x) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ïacos
(3M) ¤Ç¤¹¡£
- ÊÑ¿ô
c¡¢l¡¢p¡¢s¡¢u¡¢x¡¢y
¤ÏDOUBLE PRECISION
·¿¤Ç¤¹¡£DOUBLE PRECISION
ʸ¤Ë¡¢¤Þ¤¿¤ÏŬÅö¤ÊIMPLICIT
ʸ¤Ç¤³¤ì¤é¤Î´Ø¿ô¤Î·¿¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Þ¤¹¡£sind(x)
¤äasind(x)
¤Ê¤É¤Ç¤Ï¡¢¥é¥¸¥¢¥ó¤Ç¤Ï¤Ê¤¯ÅÙ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£»²¾È :
intro
(3M)¡¢¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù4 ÇÜÀºÅٴؿô
¤³¤ì¤é¤ÎÉû¥×¥í¥°¥é¥à¤Ï¡¢4 ÇÜÀºÅÙ (
REAL*16
) ¤Î¿ô³Ø´Ø¿ô¤ª¤è¤Ó¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¹ (SPARC ¤Î¤ß)¡£Ä̾¤³¤ì¤é¤Î´Ø¿ô¤Ï Fortran µ¬³Ê¤ÎÁí¾ÎÁȤ߹þ¤ß´Ø¿ô¤È¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£¥Ç¡¼¥¿·¿¤ÏÄ̾ï¤Î·¿·èÄ구§¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤Þ¤¹¡£
4 ÇÜÀºÅٴؿô¤Ï
REAL*16
ʸ¤Ë»ØÄꤷ¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¡¡
- ÊÑ¿ô
c
¡¢l
¡¢p
¡¢s¡¢u¡¢x¡¢y
¤Ï 4 ÇÜÀºÅ٤Ǥ¹¡£REAL*16
ʸ¤Þ¤¿¤ÏŬÅö¤ÊIMPLICIT
ʸ¤Ç¤³¤ì¤é¤Î´Ø¿ô¤Î·¿¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Þ¤¹¡£sind(x)
¤äasind(x) ¤Ê¤É¤Ç¤Ï¡¢¥é¥¸¥¢¥ó¤Ç¤Ï¤Ê¤¯ÅÙ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£
¤½¤Î¾¤Î 4 ÇÜÀºÅÙ
libm
´Ø¿ô¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢¤½¤Î¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë$PRAGMA C
<´Ø¿ô̾> ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØFortran ¥×¥í¥°¥é¥ß¥ó¥°¥¬¥¤¥É¡Ù¤Î Âè 11 ¾Ï¡ÖC ¤È Fortran ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£abort : ½ªÎ»¤È¥³¥¢¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤¹þ¤ß
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
call abort
abort
¤Ï¡¢Æþ½ÐÎϥХåե¡¤ò¥Õ¥é¥Ã¥·¥å (¥Ð¥Ã¥Õ¥¡Æâ¤Î¥Ç¡¼¥¿¤ò¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤à¤³¤È) ¤·¡¢¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥¢¥Õ¥¡¥¤¥ë¤Î¥á¥â¥ê¡¼¥À¥ó¥×¤òºîÀ®¤·¤Æ¡¢½èÍý¤ò°Û¾ï½ªÎ»¤µ¤»¤Þ¤¹¡£¥³¥¢¥À¥ó¥×¤òÀ©¸Â¡¢¤Þ¤¿¤Ï¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢limit
(1) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£access : ¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤Þ¤¿¤ÏÍ̵¤Î¸¡ºº
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
name CHARACTER
ÆþÎÏ ¥Õ¥¡¥¤¥ë̾ mode CHARACTER
ÆþÎÏ ¥¢¥¯¥»¥¹¸¢ Ìá¤êÃÍ INTEGER*4
½ÐÎÏ status=0: Àµ¾ï
status>0: ¥¨¥é¡¼¥³¡¼¥É
access
¤Ï¡¢name ¤Ç»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë mode ¤Ç»ØÄꤷ¤¿¥¢¥¯¥»¥¹¸¢¤Ç¥¢¥¯¥»¥¹¤Ç¤¤ë¤«¤É¤¦¤«¤ò·èÄꤷ¤Þ¤¹¡£mode ¤Ç»ØÄꤷ¤¿¥¢¥¯¥»¥¹¤¬Àµ¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ï¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£¥¨¥é¡¼¥³¡¼¥É¤ò²ò¼á¤¹¤ë¾ì¹ç¤Ï¡¢
gerror
(3F) ¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£mode ¤Ë¤Ï¡¢
r
¡¢w
¡¢x
¤òñÆÈ¤Ç»ØÄꤹ¤ë¤³¤È¤â¡¢Ç¤°Õ¤Î½ç½ø¤Ç 2 ¤Ä°Ê¾åÁȤ߹ç¤ï¤»¤Æ»ØÄꤹ¤ë¤³¤È¤â¡¢¤¢¤ë¤¤¤Ï¶õÇò¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£r
¡¢w
¡¢x
¤Î°ÕÌ£¤Ï¤½¤ì¤¾¤ì°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
Îã 1¡§ÆÉ¤ß¼è¤ê¤ª¤è¤Ó½ñ¤¹þ¤ß¤Ë´Ø¤¹¤ë¥¢¥¯¥»¥¹¸¢¤Î¥Æ¥¹¥È
INTEGER*4 access, statusstatus = access ( 'taccess.data', 'rw' )if ( status .eq. 0 ) write(*,*) "ok"if ( status .ne. 0 ) write(*,*) 'ÆÉ¤ß/½ñ¤ÉÔ²Ä', status
INTEGER*4 access, statusstatus = access ( 'taccess.data', ' ' ) ! ¶õÇò¥â¡¼¥Éif ( status .eq. 0 ) write(*,*) "¥Õ¥¡¥¤¥ë¸ºß"if ( status .ne. 0 ) write(*,*) '¥Õ¥¡¥¤¥ë¤Ï¤Ê¤¤', statusalarm : »ØÄê»þ´Ö¸å¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
time INTEGER*4
ÆþÎÏ ÂÔ¤Á»þ´Ö¤ÎÉÿô (0 ¤Î¾ì¹ç¤Ï¸Æ¤Ó½Ð¤µ¤Ê¤¤) sbrtn ¥ë¡¼¥Á¥ó̾ ÆþÎÏ ¼Â¹Ô¤¹¤ëÉû¥×¥í¥°¥é¥à¤Ï EXTERNAL ʸ¤ÇÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ Ìá¤êÃÍ INTEGER*4
½ÐÎÏ Á°²ó¸Æ¤Ó½Ð¤·¤¿ alarm ¤Î»Ä¤ê»þ´Ö
alarm
¤Î»ÈÍÑÎã: 9 ÉÃÂÔµ¡¤·¤Æ¤«¤ésbrtn
¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
»²¾È :
alarm
(3C)¡¢sleep
(3F)¡¢signal
(3F) °Ê²¼¤ÎÀ©¸Â»ö¹à¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
- ¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¼«Ê¬¼«¿È¤Î̾Á°¤ò
alarm
¤ËÅϤ¹¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£alarm
¥ë¡¼¥Á¥ó¤Ï¡¢Æþ½ÐÎϤ˴³¾Ä¤¹¤ë²ÄǽÀ¤Î¤¢¤ë¥·¥°¥Ê¥ë¤òȯÀ¸¤µ¤»¤Þ¤¹¡£¸Æ¤Ó½Ð¤µ¤ì¤¿¥µ¥Ö¥ë¡¼¥Á¥ó (sbrtn) ¤Ç¤Ï¡¢¤¤¤Ã¤µ¤¤Æþ½ÐÎϤò¼Â¹Ô¤·¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£- Fortran ¤ÎÊÂÎó¥×¥í¥°¥é¥à¤Þ¤¿¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤«¤é
alarm
() ¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Í½´ü¤·¤Ê¤¤·ë²Ì¤ò¾·¤¯¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£bit : ¥Ó¥Ã¥È´Ø¿ô
ÄêµÁ
¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£MIL-STD-1753 ¤ÎÂåÂØ³°Éô¥Ð¡¼¥¸¥ç¥ó¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
¡Ömvbits : ¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î°Üư¡×¤È¡ØFORTRAN 77 ¸À¸ì¥ê¥Õ¥¡¥ì¥ó¥¹¡Ù ¤ÎÂè 6 ¾Ï¡ÖÁȤ߹þ¤ß´Ø¿ô¡×¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
and¡¢or¡¢xor¡¢not¡¢rshift¡¢lshift ¤Î»ÈÍÑË¡
ÁȤ߹þ¤ß´Ø¿ô¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë»È¤¤¤Þ¤¹¡£
x = or(
word1, word2)
x = xor(
word1, word2)
x = not(
word)
x = rshift(
word, nbits)
x = lshift(
word, nbits)
word¡¢word1¡¢word2¡¢¤ª¤è¤Ó nbits ¤Ï¡¢À°¿ô·¿¤ÎÆþÎϰú¿ô¤Ç¤¹¡£¤³¤ì¤é¤ÏÁȤ߹þ¤ß´Ø¿ô¤Ç¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ê¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤Þ¤¹¡£Ìᤵ¤ì¤ë¥Ç¡¼¥¿¤Î·¿¤Ï¡¢Âè 1 °ú¿ô¤Î¥Ç¡¼¥¿·¿¤Ç¤¹¡£
nbits ¤ÎÃͤ¬ÀµÅö¤«¤É¤¦¤«¤Î¸¡ºº¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£
bic¡¢bis¡¢bit¡¢setbit ¤Î»ÈÍÑË¡
call bic(
bitnum,
word)
call bis(
bitnum,
word)
call setbit(
bitnum,
word,
state)
LOGICAL bitx= bit(
bitnum,
word)
bitnum¡¢state¡¢¤ª¤è¤Ó word ¤Ï¡¢
INTEGER*4
·¿¤ÎÆþÎϰú¿ô¤Ç¤¹¡£bit()
´Ø¿ô¤Ç¤Ï¡¢ÏÀÍýÃͤ¬ÊÖ¤µ¤ì¤Þ¤¹¡£¥Ó¥Ã¥È¤Ï¡¢¥Ó¥Ã¥È 0 ¤¬ºÇ²¼°Ì¥Ó¥Ã¥È¡¢¥Ó¥Ã¥È 31 ¤¬ºÇ¾å°Ì¥Ó¥Ã¥È¤Ë¤Ê¤ë¤è¤¦¤ËÈֹ椬ÉÕ¤±¤é¤ì¤Þ¤¹¡£
bic¡¢bis
¤ª¤è¤Ósetbit
¤Ï³°Éô¥µ¥Ö¥ë¡¼¥Á¥ó¡¢bit
¤Ï³°Éô´Ø¿ô¤Ç¤¹¡£Îã 3 :
bic¡¢bis¡¢setbit¡¢bit
chdir : ¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
dirname CHARACTER
ÆþÎÏ ¥Ç¥£¥ì¥¯¥È¥ê̾ Ìá¤êÃÍ INTEGER*4
½ÐÎÏ n=0: Àµ¾ï¡¢ n>0: ¥¨¥é¡¼¥³¡¼¥É Îã :
chdir
¡Ý
¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤òMyDir
¤ËÊѹ¹¤·¤Þ¤¹¡£
INTEGER*4 chdir, nn = chdir ( 'MyDir' )if ( n .ne. 0 ) stop 'chdir: ¥¨¥é¡¼'end»²¾È :
chdir
(2)¡¢cd
(1)¡¢gerror
(3F) (¥¨¥é¡¼¥³¡¼¥É¤Î²ò¼á)¥Ñ¥¹Ì¾¤Ï¡¢
<sys/param.h>
¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëMAXPATHLEN
¤è¤êŤ¯¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ÁêÂХѥ¹Ì¾¤Ç¤â¡¢ÀäÂХѥ¹Ì¾¤Ç¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¤ÈÁõÃ֤ˤè¤ë¾È²ñ¤¬¼ºÇÔ¤¹¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
¤¤¤¯¤Ä¤«¤Î Fortran ¤Î¥Õ¥¡¥¤¥ëÁàºî¤Ï¡¢¥Õ¥¡¥¤¥ë¤ò̾Á°¤ÇºÆ¥ª¡¼¥×¥ó¤·¤Þ¤¹¡£Æþ½ÐÎÏÆ°ºîÃæ¤Ë
chdir
¤ò»ÈÍѤ¹¤ë¤È¡¢¼Â¹Ô»þ¥·¥¹¥Æ¥à¤¬ÁêÂХѥ¹Ì¾¤ÇºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë (¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤻ¤º¤Ë open ʸ¤ÇºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò´Þ¤à) ¤ò¸«¼º¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£chmod : ¥Õ¥¡¥¤¥ë¤Î¥â¡¼¥É¤ÎÊѹ¹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
name CHARACTER
ÆþÎÏ ¥Ñ¥¹Ì¾ mode CHARACTER
ÆþÎÏ chmod
(1) ¤Ëǧ¼±¤µ¤ì¤ë¥â¡¼¥É
(o-w
¡¢444
¤Ê¤É)Ìá¤êÃÍ INTEGER*4
½ÐÎÏ n= 0: Àµ¾ï¡¢
n> 0: ¥·¥¹¥Æ¥à¥¨¥é¡¼ÈÖ¹æÎã :
chmod
¡Ý
½ñ¤¹þ¤ß¸¢¤òMyFile
¤ËÄɲä·¤Þ¤¹¡£
character*18 name, modeINTEGER*4 chmod, nname = 'MyFile'mode = '+w'n = chmod( name, mode )if ( n .ne. 0 ) stop 'chmod: ¥¨¥é¡¼'end»²¾È¡§
chmod
(1)¡¢gerror
(3F) (¥¨¥é¡¼¥³¡¼¥É¤Î²ò¼á)¥Ñ¥¹Ì¾¤Ï¡¢<
sys/param.h
> ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëMAXPATHLEN
¤è¤êŤ¯¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£date : ʸ»úÎó¤È¤·¤Æ¸½ºß¤Î¥Ç¡¼¥¿¤ò¼èÆÀ
Ãí - ¤³¤Î¥ë¡¼¥Á¥ó¤Ïǯ¤ò¼¨¤¹¾ì¹ç¤Ë 2 ·å¤ÎÃͤ·¤«ÊÖ¤µ¤Ê¤¤¤Î¤Ç¡¢¡Ö2000 ǯ¤Ë¤Ï̵¸ú¡× ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¥ë¡¼¥Á¥ó¤Î½ÐÎϤò»ÈÍѤ·¤ÆÆüÉմ֤κ¹¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢1999 ǯ12 ·î 31 Æü°Ê¹ß¤ÏÀµ¤·¤¯µ¡Ç½¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¤³¤Îdate
( ) ¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢¥ë¡¼¥Á¥ó¤Î½é´ü¸Æ¤Ó½Ð¤·»þ¤Ë¼Â¹Ô»þ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ¥æ¡¼¥¶¡¼¤Ë·Ù¹ð¤·¤Þ¤¹¡£¤³¤Î¥ë¡¼¥Á¥ó¤ÎÂå¤ï¤ê¤Ë¸Æ¤Ó¤À¤¹¤³¤È¤Î¤Ç¤¤ë¥ë¡¼¥Á¥ó¤È¤·¤Æ¡¢data_and_time()
¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
c CHARACTER*9
½ÐÎÏ ÊÑ¿ô¡¢ÇÛÎó¡¢ÇÛÎóÍ×ÁÇ¡¢¤¢¤ë¤¤¤ÏÉôʬÎó Ìᤵ¤ì¤ëʸ»úÎó c ¤Î·Á¼°¤Ï¡¢dd-mmm-yy ¤Ç¤¹¡£¤³¤³¤Ç¡¢dd ¤Ï 2 ·å¤Î¿ôÃͤÇɽ¤·¤¿Æü¡¢mmm ¤Ï 3 ʸ»ú¤Ë¾Êά¤·¤¿±Ñ¸ì¤Î·î̾¡¢yy ¤Ï 2 ·å¤Î¿ôÃͤÇɽ¤·¤¿Ç¯ (2000ǯ¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó) ¤Ç¤¹¡£
¡Öidate : ¸½ºß¤ÎÆüÉÕ¤òÌ᤹¡×¤È¡¢¡Ödate_and_time : ÆüÉդȻþ¹ï¤Î¼èÆÀ¡×¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
date_and_time : ÆüÉդȻþ¹ï¤Î¼èÆÀ
¤³¤ì¤Ï¡¢Fortran 95 ÁȤ߹þ¤ß¥ë¡¼¥Á¥ó¤Î FORTRAN 77 ¥Ð¡¼¥¸¥ç¥ó¤Ç¡¢2000 ǯ°Ê¹ß¤â͸ú¤Ç¤¹¡£
DATE_AND_TIME
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¥ê¥¢¥ë¥¿¥¤¥à¥¯¥í¥Ã¥¯¤ÈÆüÉդΥǡ¼¥¿¤òÊÖ¤·¤Þ¤¹¡£¸½ÃÏ»þ´Ö¤Î¾¤Ë¡¢¸½ÃÏ»þ´Ö¤ÈÀ¤³¦É¸½à»þ (UTC: Universal Coordinated Time)(¥°¥ê¥Ë¥Ã¥¸Ê¿¶Ñ»þ (GMT: Greenwich Mean Time) ¤È¤â¸Æ¤Ö) ¤Î»þº¹¤âÊÖ¤·¤Þ¤¹¡£
date_and_time
( ) ¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
INTEGER*4
values
¤ËÊÖ¤µ¤ì¤ë 8 ¤Ä¤ÎÃͤϼ¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
2000 ǯ 2 ·î 16 Æü¤Ë¥«¥ê¥Õ¥©¥ë¥Ë¥¢¤Ç¼Â¹Ô¤·¤¿¾ì¹ç¤Î½ÐÎϤϼ¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
date_time ÇÛÎóÃÍ:ǯ= 2000month_of_year= 2day_of_month= 16»þº¹¡Êʬ¡Ë= -420»þ= 11ʬ= 49ÉÃ= 29¥ß¥êÉÃ= 236DATE=20000216TIME=114929.236ZONE=-0700dtime¡¢etime : ·Ð²á¼Â¹Ô»þ´Ö
¤³¤ì¤é¤Î 2 ¤Ä¤Î´Ø¿ô¤Ï¡¢·Ð²á¼Â¹Ô»þ´Ö (¤¢¤ë¤¤¤Ï¥¨¥é¡¼»Ø¼¨»Ò¤È¤·¤Æ -1.0) ¤òÊÖ¤·¤Þ¤¹¡£ÊÖ¤µ¤ì¤ë»þ´Ö¤ÏÉÃñ°Ì¤Ç¤¹¡£
Fortran 77 ¤¬»ÈÍѤ¹¤ë dtime ¤È etime ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¼Â¹Ô»þ¤Î¥·¥¹¥Æ¥à¤Î¹âʬ²òǽ¥¯¥í¥Ã¥¯¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿»þ¹ï¤òÊÖ¤·¤Þ¤¹¡£¼ÂºÝ¤Îʬ²òǽ¤Ï¥·¥¹¥Æ¥à¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤Ã¤Æ°ã¤¤¤Þ¤¹¡£¸½ºß¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¥¯¥í¥Ã¥¯¤Îʬ²òǽ¤Ï¡¢£± ¥Ê¥ÎÉ䫤é 1 ¥Þ¥¤¥¯¥íÉäÎÈÏ°ÏÆâ¤Ç¤¹¡£
Fortran 95 ¤¬»ÈÍѤ¹¤ë
dtime
¤Èetime
¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥·¥¹¥Æ¥à¤ÎÄãʬ²òǽ¥¯¥í¥Ã¥¯¤ò»ÈÍѤ·¤Þ¤¹¡£Ê¬²òǽ¤Ï 100 ʬ¤Î 1 ÉäǤ¹¡£¤¿¤À¤·¡¢¥×¥í¥°¥é¥à¤¬ Sun OSTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£ptime
(1)¡¢(/usr/proc/bin/ptime
) ¤Î²¼¤Ç¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤Ï¡¢¹âʬ²òǽ¥¯¥í¥Ã¥¯¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£dtime : Á°²ó¤Î dtime ¸Æ¤Ó½Ð¤·¤«¤é¤Î·Ð²á»þ´Ö
dtime
¤Î¾ì¹ç¡¢·Ð²á»þ´Ö¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
- ºÇ½é¤Î¸Æ¤Ó½Ð¤·¡§¼Â¹Ô³«»Ï¤«¤é¤Î·Ð²á»þ´Ö
- 2 ²óÌܰʹߤθƤӽФ·¡§Á°²ó¤Î
dtime
¤Î¸Æ¤Ó½Ð¤·¤«¤é¤Î·Ð²á»þ´Ö- ¥·¥ó¥°¥ë¥×¥í¥»¥Ã¥µ¡§CPU ¤Î»ÈÍÑ»þ´Ö
- ¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¡§¤¹¤Ù¤Æ¤Î CPU »ÈÍѹç·×»þ´Ö (¤¢¤Þ¤êÊØÍø¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢
etime
¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤)
Ãí - ÊÂÎ󲽥롼¥×Æâ¤«¤édtime
¤ò¸Æ¤Ó½Ð¤¹¤È¡¢·èÄêÀ¤Î¤Ê¤¤·ë²Ì¤Ë¤Ê¤ê¤Þ¤¹¡£·Ð²á»þ´Ö¥«¥¦¥ó¥¿¤¬¡¢¥ë¡¼¥×¤Ë´ØÍ¿¤·¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤ËÂФ·¤Æ¥°¥í¡¼¥Ð¥ë¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Îã :
dtime()
¡¢¥·¥ó¥°¥ë¥×¥í¥»¥Ã¥µ
etime : ¼Â¹Ô³«»Ï¤«¤é¤Î·Ð²á»þ´Ö
etime
¤Î¾ì¹ç¡¢·Ð²á»þ´Ö¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
- ¥·¥ó¥°¥ë¥×¥í¥»¥Ã¥µ¡§¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î CPU »þ´Ö
- ¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¡§¥×¥í¥°¥é¥à¤ò½èÍý¤·¤Æ¤¤¤ë´Ö¤Î¼Â»þ´Ö
Fortran ¤Ï¡¢¥·¥ó¥°¥ë¥×¥í¥»¥Ã¥µ¤È¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤ò°Ê²¼¤Î¤è¤¦¤Ë¶èÊ̤·¤Þ¤¹¡£
libF77_mt
¤È¥ê¥ó¥¯¤·¤¿ÊÂÎó Fortran ¥×¥í¥°¥é¥à¤Ç¤Ï¡¢´Ä¶ÊÑ¿ô¤¬PARALLEL
¤Î¾ì¹ç¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
- ̤ÄêµÁ¤Î¾ì¹ç¡¢¸½ºß¤Î¼Â¹Ô¤Ï¥·¥ó¥°¥ë¥×¥í¥»¥Ã¥µ¤Ç¤¹¡£
- ÄêµÁºÑ¤ß¤ÇÈÏ°Ï 1,2,3,... ¤Î¾ì¹ç¡¢¸½ºß¤Î¼Â¹Ô¤Ï¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤Ç¤¹¡£
- ÄêµÁºÑ¤ß¤Ç 1,2,3,... °Ê³°¤ÎÃͤξì¹ç¡¢·ë²Ì¤ÏÉÔÄê¤Ç¤¹¡£
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
etime
¤Î½é´ü¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤ë·ë²Ì¤ÏÉÔÀµ³Î¤Ç¤¹¡£½é´ü¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢Ã±¤Ë¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò²ÔƯ¤µ¤»¤ë¤À¤±¤Ê¤Î¤Ç¡¢etime
¤Î½é´ü¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤¿ÃͤϻÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£Îã :
etime()
¡Ý
¥·¥ó¥°¥ë¥×¥í¥»¥Ã¥µ
times
(2)¡¢f77
(1) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¡¢¤ª¤è¤Ó¡ØFortran ¥×¥í¥°¥é¥ß¥ó¥°¥¬¥¤¥É¡Ù¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£exit : ¥×¥í¥»¥¹¤Î½ªÎ»¤ª¤è¤Ó¾õÂÖ¤ÎÀßÄê
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
call exit
( status )status INTEGER*4
ÆþÎÏ
...if(dx .lt. 0.) call exit( 0 )...end
exit
¤Ï¥Õ¥é¥Ã¥·¥å¤·¤Æ¤«¤é¥×¥í¥»¥¹¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤òÊĤ¸¡¢¤½¤Î¿Æ¥×¥í¥»¥¹¤¬wait
¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¿Æ¥×¥í¥»¥¹¤ËÄÌÃΤ·¤Þ¤¹¡£¿Æ¥×¥í¥»¥¹¤Ï status ¤Î²¼°Ì 8 ¥Ó¥Ã¥È¤ò»ÈÍѤǤ¤Þ¤¹¡£¤³¤Î 8 ¥Ó¥Ã¥È¤Ïº¸¤Ë 8 ¥Ó¥Ã¥È¥·¥Õ¥È¤µ¤ì¡¢Â¾¤Î¥Ó¥Ã¥È¤Ï¤¹¤Ù¤Æ¥¼¥í¤Ë¤Ê¤ê¤Þ¤¹ (¤·¤¿¤¬¤Ã¤Æ status ¤Ï 256 ¡Á 65280 ¤ÎÈϰϤˤʤê¤Þ¤¹)¡£¤³¤Î¸Æ¤Ó½Ð¤·¤ÏÉüµ¢¤·¤Þ¤»¤ó¡£
C ¤Î´Ø¿ô¤Ç¤¢¤ë
exit
¤Ï¡¢ºÇ½ªÅª¤Ê¥·¥¹¥Æ¥à½ªÎ»Æ°ºî¤¬¼Â¹Ô¤µ¤ì¤ëÁ°¤ËÀ°Íý¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£°ú¿ô¤Ê¤·¤Ç
exit
¤ò¸Æ¤Ó½Ð¤¹¤È¥³¥ó¥Ñ¥¤¥ë»þ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½Ð¤µ¤ì¡¢¼«Æ°Åª¤Ë°ú¿ô¤Ë¥¼¥í¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£
»²¾È :exit
(2)¡¢fork
(2)¡¢fork
(3f)¡¢wait
(2)¡¢wait
(3f)fdate : ASCII ʸ»úÎó¤ÇÆüÉÕ¤ª¤è¤Ó»þ¹ï¤òÌ᤹
¥µ¥Ö¥ë¡¼¥Á¥ó¤Þ¤¿¤Ï´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
string CHARACTER*24
½ÐÎÏ
CHARACTER fdate*24
string =fdate()
fdate
¤ò´Ø¿ô¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤¹¥ë¡¼¥Á¥ó¤Ïfdate
¤Î·¿¤ÈŤµ¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ëÌá¤êÃÍ CHARACTER*24
½ÐÎÏ Îã 1 : ¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¤Î»ÈÍÑ
character*24
stringcall fdate( string )write(*,*) stringend¾åµ¤ÎÎã¤Î½ÐÎϤϼ¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
Wed Aug 3 15:30:23 1994Îã 2 : ´Ø¿ô¤È¤·¤Æ¤Î»ÈÍÑ¡£½ÐÎϤϾ嵤ÎÎã¤ÈƱ¤¸¡£
character*24
fdatewrite(*,*) fdate()end»²¾È :
ctime
(3)¡¢time
(3F)¡¢idate
(3F)flush : ÏÀÍýÁõÃ֤ؤνÐÎϤΥեé¥Ã¥·¥å
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
lunit INTEGER*4
Input ÏÀÍýÁõÃÖ Return value INTEGER*4
Output n = 0 no error
n > 0 error number
flush
´Ø¿ô¤Ï¡¢ÏÀÍýÁõÃÖlunit
¤ËÂФ¹¤ë¥Ð¥Ã¥Õ¥¡¤ÎÆâÍÆ¤ò·ë¹ç¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë¥Õ¥é¥Ã¥·¥å¤·¤Þ¤¹¡£¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤¬ºÇ¤âÌò¤ËΩ¤Ä¤Î¤Ï¡¢ÏÀÍýÁõÃÖ 0 ¤È 6 ¤¬¤É¤Á¤é¤â¥³¥ó¥½¡¼¥ë¤Ë·ë¹ç¤µ¤ì¤Æ¤¤¤Æ¡¢¤½¤ì¤é¤ÎÁõÃÖ¤ËÂФ·¤Æ¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ç¤¹¡£´Ø¿ô¤Ï¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¡¢Àµ¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤·¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤Ê¤¤¤È¥¼¥í¤òÊÖ¤·¤Þ¤¹¡£
fork : ¸½¥×¥í¥»¥¹¤Î¥³¥Ô¡¼¤ÎÀ¸À®
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ n>0: n= ¥³¥Ô¡¼¤Î¥×¥í¥»¥¹¼±ÊÌ»Ò n<0, n= (¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É )
fork
´Ø¿ô¤Ï¤½¤ì¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥³¥Ô¡¼¤òÀ¸À®¤·¤Þ¤¹¡£¸µ¤Î¥×¥í¥»¥¹¤È¥³¥Ô¡¼¤È¤Î°ã¤¤¤Ï¡¢¸µ¤Î¥×¥í¥»¥¹ (¿Æ¥×¥í¥»¥¹¤È¸Æ¤Ð¤ì¤ë) ¤ËÊÖ¤µ¤ì¤ëÃͤ¬¥³¥Ô¡¼¤Î¥×¥í¥»¥¹¼±Ê̻ҤǤ¢¤ë¤È¤¤¤¦¤³¤È¤À¤±¤Ç¤¹¡£¥³¥Ô¡¼¤Ï°ìÈÌ¤Ë»Ò¥×¥í¥»¥¹¤È¸Æ¤Ð¤ì¤Þ¤¹¡£»Ò¥×¥í¥»¥¹¤ËÊÖ¤µ¤ì¤ëÃͤϥ¼¥í¤Ç¤¹¡£½ñ¤¹þ¤ßÍѤ˳«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤ÎÏÀÍýÁõÃÖ¤Ï
¡¢fork
¤¬¼Â¹Ô¤µ¤ì¤ëÁ°¤Ë¥Õ¥é¥Ã¥·¥å¤µ¤ì¤Þ¤¹¡£¤³¤ì¤ÏÆþ½ÐÎϥХåե¡¤ÎÆâÍÆ¤¬³°Éô¥Õ¥¡¥¤¥ë¤Ë½ÅÊ£¤·¤Æ½ñ¤¹þ¤Þ¤ì¤ë¤Î¤òËɤ®¤Þ¤¹¡£
INTEGER*4 fork, pidpid = fork()if(pid.lt.0) stop '¥Õ¥©¡¼¥¯¼ºÇÔ'if(pid.gt.0) thenprint *, '¿Æ¥×¥í¥»¥¹'elseprint *, '»Ò¥×¥í¥»¥¹'endif
fork
¥ë¡¼¥Á¥ó¤ÈÂФò¤Ê¤¹exec
¥ë¡¼¥Á¥ó¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤ì¤ÏÏÀÍýÁõÃÖ¤ò³«¤¤¤¿¤Þ¤Þ¤Çexec
¥ë¡¼¥Á¥ó¤ËÅϤ»¤ëÎɤ¤ÊýË¡¤¬¤Ê¤¤¤¿¤á¤Ç¤¹¡£¤¿¤À¤·¡¢system
(3F) ¤ò»ÈÍѤ¹¤ì¤Ðfork/exec
¤ÎÄ̾ï¤Îµ¡Ç½¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£»²¾È :
fork
(2)¡¢wait
(3F)¡¢kill
(3F)¡¢system
(3F)¡¢perror
(3F)free : Malloc ¤Ë¤è¤ê³ä¤êÅö¤Æ¤é¤ì¤¿µ²±Îΰè¤Î
³ä¤êÅö¤Æ²ò½ü¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
ptr pointer
ÆþÎÏ
free
¤Ïmalloc
¤Ë¤è¤êÀè¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿µ²±Îΰè¤Î³ä¤êÅö¤Æ¤ò²ò½ü¤·¤Þ¤¹¡£
µ²±Îΰè¤Ï¥á¥â¥ê¡¼¥Þ¥Í¡¼¥¸¥ã¤ËÊÖ¤µ¤ì¤Þ¤¹¤¬¡¢¥æ¡¼¥¶¡¼¤Î¥×¥í¥°¥é¥à¤ÎÃæ¤Ç¤³¤ì¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
real xpointer ( ptr, x )ptr = malloc ( 10000 )call free ( ptr )end¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ömalloc¡¢malloc 64: µ²±Îΰè¤Î³ä¤êÅö¤Æ¤È¤½¤Î¥¢¥É¥ì¥¹¤Î³ÍÆÀ¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
fseek¡¢ftell : ¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤Î°ÌÃÖÉÕ¤±¤ÈºÆ°ÌÃÖÉÕ¤±
fseek
¤ª¤è¤Óftell
¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎºÆ°ÌÃÖÉÕ¤±¤ò²Äǽ¤Ë¤¹¤ë¥ë¡¼¥Á¥ó¤Ç¤¹¡£ftell
¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¸½ºß°ÌÃÖ¤ò¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤ò¼¨¤¹¥Ð¥¤¥È¿ô¤ÇÊÖ¤·¤Þ¤¹¡£¥×¥í¥°¥é¥à¤Î¸åÊý¤Ç¡¢¤³¤ÎÃͤò»ÈÍѤ·¤Æfseek
¤ò¸Æ¤Ö¤³¤È¤Ë¤è¤ê¡¢¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß°ÌÃÖ¤ò¸µ¤ËÌ᤹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£fseek : ÏÀÍýÁõÃÖ¾å¤Î¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤ÎºÆ°ÌÃÖÉÕ¤±
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ãí - ½çÊÔÀ®¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢fseek
64
¤Ë³¤¯¸Æ¤Ó½Ð¤·¤Î¸å¤Î½ÐÎÏÁàºî (WRITE ¤Ê¤É) ¤Ï¡¢fseek
¤Î°ÌÃ֤˳¤¯¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¥ì¥³¡¼¥É¤Îºï½ü¡¢¿·¤·¤¤¥Ç¡¼¥¿¥ì¥³¡¼¥É (¤È¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤Î¥Þ¡¼¥¯) ¤Ç¤Î½ñ¤´¹¤¨¤Î¸¶°ø¤È¤Ê¤ê¤Þ¤¹¡£Àµ¤·¤¤°ÌÃ֤ؤΥ쥳¡¼¥É¤Î½ñ¤´¹¤¨¤Ï¡¢Ä¾ÀÜ¥¢¥¯¥»¥¹¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß¼Â¹Ô²Äǽ¤Ç¤¹¡£
Îã :
fseek()
¡Ý
MyFile
¤Î¥Ý¥¤¥ó¥¿¤òÀèÆ¬¤«¤é 2 ¥Ð¥¤¥È¤Î°ÌÃ֤˺ưÌÃÖÉÕ¤±¤·¤Þ¤¹¡£
INTEGER*4 fseek, lunit/1/, offset/2/, from/0/, nopen( UNIT=lunit, FILE='MyFile' )n = fseek( lunit, offset, from )if ( n .gt. 0 ) stop 'fseek ¥¨¥é¡¼'endÎã : ¾åµ¤ÎÎã¤ò 64 ¥Ó¥Ã¥È´Ä¶¤Ç¡¢
-xarch=v9
¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
INTEGER*4 fseek, lunit/1/, from/0/, nINTEGER*8 offset/2/open( UNIT=lunit, FILE='MyFile' )n = fseek( lunit, offset, from )if ( n .gt. 0 ) stop 'fseek error'endftell : ¥Õ¥¡¥¤¥ë¤Î¸½ºß°ÌÃÖ¤òÌ᤹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
INTEGER*4 ftell, lunit/1/, nopen( UNIT=lunit, FILE='MyFile' )...n = ftell( lunit )if ( n .lt. 0 ) stop 'ftell ¥¨¥é¡¼'...Îã : ¾åµ¤ÎÎã¤ò 64 ¥Ó¥Ã¥È´Ä¶¤Ç¡¢
-xarch=v9
¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
INTEGER*4 lunit/1/INTEGER*8 ftell, nopen( UNIT=lunit, FILE='MyFile' )...n = ftell( lunit )if ( n .lt. 0 ) stop 'ftell error'...»²¾È :
fseek
(3S)¡¢perror
(3F)¡¢fseeko64
(3f)¡¢ftello64
(3f)fseeko64¡¢ftello64: Â絬ÌÏ¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤Î°ÌÃÖÉÕ¤±¤ÈºÆ°ÌÃÖÉÕ¤±
fseeko64
¤Èftello64
¤Ï¡¢¤½¤ì¤¾¤ìfseek
¤Èftell
¤Î ¡ÖÂ絬ÌÏ¥Õ¥¡¥¤¥ë¡× ¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£fseeko64
¤Èftello64
¤Ï¡¢Solaris 2.6 ¤È 7 ¤ÇINTEGER*8
¥Õ¥¡¥¤¥ë°ÌÃ֤Υª¥Õ¥»¥Ã¥È¤òÆþ½ÐÎϤ·¤Þ¤¹¡£(¡ÖÂ絬ÌÏ¥Õ¥¡¥¤¥ë¡× ¤È¤Ï 2G ¥Ð¥¤¥È¤òͤ¨¤ë¥Õ¥¡¥¤¥ë¤Î¤³¤È¤Ç¡¢¥Ð¥¤¥È°ÌÃÖ¤Ï 64 ¥Ó¥Ã¥È¤ÎÀ°¿ô¤Ç¼¨¤·¤Þ¤¹¡£) ¤³¤ì¤é¤Î¥Ð¡¼¥¸¥ç¥ó¤ò»ÈÍѤ·¤Æ¡¢Â絬ÌÏ¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤Î°ÌÃÖÉÕ¤±¤äºÆ°ÌÃÖÉÕ¤±¤ò¹Ô¤¤¤Þ¤¹¡£fseeko64: ÏÀÍýÁõÃÖ¾å¤Î¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤ÎºÆ°ÌÃÖÉÕ¤±
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ãí - ½çÊÔÀ®¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢fseek 64
¤Ë³¤¯¸Æ¤Ó½Ð¤·¤Î¸å¤Î½ÐÎÏÁàºî (WRITE ¤Ê¤É) ¤Ï¡¢fseek
¤Î°ÌÃ֤˳¤¯¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿¥ì¥³¡¼¥É¤Îºï½ü¡¢¿·¤·¤¤¥Ç¡¼¥¿¥ì¥³¡¼¥É (¤È¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤Î¥Þ¡¼¥¯) ¤Ç¤Î½ñ¤´¹¤¨¤Î¸¶°ø¤È¤Ê¤ê¤Þ¤¹¡£Àµ¤·¤¤°ÌÃ֤ؤΥ쥳¡¼¥É¤Î½ñ¤´¹¤¨¤Ï¡¢Ä¾ÀÜ¥¢¥¯¥»¥¹¥Õ¥¡¥¤¥ë¤Ç¤Î¤ß¼Â¹Ô²Äǽ¤Ç¤¹¡£
Îã :
fseeko64( )
-MyFile
¤Î¥Ý¥¤¥ó¥¿¤òÀèÆ¬¤«¤é 2 ¥Ð¥¤¥È¤Î°ÌÃ֤˺ưÌÃÖÉÕ¤±¤·¤Þ¤¹¡£
INTEGER fseeko64, lunit/1/, from/0/, nINTEGER*8 offset/200/open( UNIT=lunit, FILE='MyFile' )n = fseeko64( lunit, offset, from )if ( n .gt. 0 ) stop fseek ¥¨¥é¡¼'endftello64: ¥Õ¥¡¥¤¥ë¤Î¸½ºß°ÌÃÖ¤òÌ᤹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
INTEGER*8 ftello64
n =ftello64
( lunit )lunit INTEGER*4
ÆþÎÏ ³«¤¤¤Æ¤¤¤ëÏÀÍýÁõÃÖ Ìá¤êÃÍ INTEGER*8
½ÐÎÏ n³³0: n=¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤ò¼¨¤¹¥Ð¥¤¥È¿ô n<0: n=¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É Îã :
ftello64( ):
INTEGER*8 ftello64, lunit/1/, nopen( UNIT=lunit, FILE='MyFile' )...n = ftello64( lunit )if ( n .lt. 0 ) stop 'ftell ¥¨¥é¡¼'...getarg¡¢iargc : ¥³¥Þ¥ó¥É¹Ô¤Î°ú¿ô¤Î¼èÆÀ
getarg
¤Èiargc
¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë¤è¤Ã¤ÆÅ¸³«¤µ¤ì¤¿¥³¥Þ¥ó¥É¹Ô°ú¿ô¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£getarg : ¥³¥Þ¥ó¥É¹Ô¤Î°ú¿ô¤Î¼èÆÀ
¥µ¥Ö¥ë¡¼¥Á¥ó ¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
k INTEGER*4
ÆþÎÏ °ú¿ô¤Îº÷°ú (0 = ºÇ½é¤Î°ú¿ô = ¥³¥Þ¥ó¥É̾) arg CHARACTER*
n½ÐÎÏ k ÈÖÌܤΰú¿ô n INTEGER*4
°ú¿ô¤Î¥µ¥¤¥º ºÇ¤âŤ¤°ú¿ô¤¬Æþ¤ë¤À¤±¤ÎÂ礤µ iargc : ¥³¥Þ¥ó¥É¹Ô¤Î°ú¿ô¤Î¸Ä¿ô¤Î¼èÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ ¥³¥Þ¥ó¥É¹Ô¤Î°ú¿ô¤Î¸Ä¿ô Îã :
iargc
¤Ègetarg
: °ú¿ô¤Î¸Ä¿ô¤òÄ´¤Ù¡¢³Æ°ú¿ô¤òÆÉ¤ß¼è¤ê¤Þ¤¹¡£
getc¡¢fgetc : ¼¡¤Îʸ»ú¤Î¼èÆÀ
getc
¤Èfgetc
¤Ï¡¢ÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é¼¡¤Îʸ»ú¤òÆÉ¤ß¼è¤ê¤Þ¤¹¡£Æ±¤¸ÏÀÍýÁõÃÖ¾å¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·¤òÄ̾ï¤Î Fortran ¤ÎÆþ½ÐÎϤȺ®¹ç¤·¤Æ»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£getc : ɸ½àÆþÎϤ«¤é¤Î¼¡¤Îʸ»ú¤Î¼èÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
char CHARACTER
½ÐÎÏ ¼¡¤Îʸ»ú Ìá¤êÃÍ INTEGER*4
½ÐÎÏ status=0: Àµ¾ï status=-1: ¥Õ¥¡¥¤¥ë¤Î½ªÎ» status>0: ¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É¤Þ¤¿¤Ï f77
Æþ½ÐÎÏ¥¨¥é¡¼¥³¡¼¥ÉÎã :
getc
¤Ç¥¡¼¥Ü¡¼¥É¤«¤éʸ»ú¤ò 1 ʸ»ú¤º¤ÄÆþÎϤ·¤Þ¤¹¡£Control-D (öD
) ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
character charINTEGER*4 getc, statusstatus = 0do while ( status .eq. 0 )status = getc( char )write(*, '(i3, o4.3)') status, charend doend¾åµ¤Î¥½¡¼¥¹¥×¥í¥°¥é¥à¤ò (¥³¥ó¥Ñ¥¤¥ë¸å¤Ë) ¼Â¹Ô¤·¤¿Îã¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£
¤É¤ÎÏÀÍýÁõÃÖ¤ËÂФ·¤Æ¤â¡¢Ä̾ï¤Î Fortran ¤ÎÆþÎϤÈ
getc()
¤òº®ºß¤·¤Æ»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£fgetc : »ØÄꤷ¤¿ÏÀÍýÁõÃÖ¤«¤é¤Î¼¡¤Îʸ»ú¤Î¼èÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
lunit INTEGER*4
ÆþÎÏ ÏÀÍýÁõÃÖ char CHARACTER
½ÐÎÏ ¼¡¤Îʸ»ú Ìá¤êÃÍ INTEGER*4
½ÐÎÏ status=-1: ¥Õ¥¡¥¤¥ë¤Î½ªÎ» status>0: ¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É¤Þ¤¿¤Ï f77
Æþ½ÐÎÏ¥¨¥é¡¼¥³¡¼¥ÉÎã :
fgetc
¤Çtfgetc.data
¤«¤éʸ»ú¤ò 1 ʸ»ú¤º¤ÄÆÉ¤ß¼è¤ê¤Þ¤¹¡£²þ¹Ô (8 ¿Ê¤Î 012) ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
character charINTEGER*4 fgetc, statusopen( unit=1, file='tfgetc.data' )status = 0do while ( status .eq. 0 )status = fgetc( 1, char )write(*, '(i3, o4.3)') status, charend doend¾åµ¤Î¥½¡¼¥¹¥×¥í¥°¥é¥à¤ò (¥³¥ó¥Ñ¥¤¥ë¸å¤Ë) ¼Â¹Ô¤·¤¿Îã¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£
¤É¤ÎÏÀÍýÁõÃÖ¤ËÂФ·¤Æ¤â¡¢Ä̾ï¤Î Fortran ¤ÎÆþÎϤÈ
fgetc()
¤òº®ºß¤·¤Æ»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£»²¾È :
getc
(3S)¡¢intro
(2)¡¢perror
(3F)getcwd : ¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ñ¥¹¤Î¼èÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
INTEGER*4 getcwd, statuscharacter*64 dirnamestatus = getcwd( dirname )if ( status .ne. 0 ) stop 'getcwd: ¥¨¥é¡¼'write(*,*) dirnameend»²¾È :
chdir
(3F)¡¢perror
(3F)¡¢getwd
(3)
Ãí - ¥Ñ¥¹Ì¾¤ò<sys/param.h>
¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëMAXPATHLEN
¤è¤êŤ¯¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
getenv : ´Ä¶ÊÑ¿ô¤ÎÃͤμèÆÀ
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
ename CHARACTER*
nÆþÎÏ ¸¡º÷¤¹¤ë´Ä¶ÊÑ¿ô¤Î̾Á° evalue CHARACTER*
n½ÐÎÏ ¸«¤Ä¤«¤Ã¤¿´Ä¶ÊÑ¿ô¤ÎÃÍ¡£
¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¶õename ¤È evalue ¤Ë¤Ï¡¢¤½¤ì¤¾¤ì¤Îʸ»úÎ󤬽½Ê¬Æþ¤ë¤À¤±¤ÎÂ礤µ¤¬É¬ÍפǤ¹¡£
getenv
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï´Ä¶¥ê¥¹¥È¤«¤é ename=evalue ¤Î·Á¼°¤Îʸ»úÎó¤ò¸¡º÷¤·¡¢¤½¤Îʸ»úÎ󤬤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï evalue ¤ÎÃͤòÊÖ¤·¡¢¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï evalue ¤Ë¶õÇò¤òµÍ¤á¤Þ¤¹¡£Îã :
$SHELL
¤ÎÃͤò°õºþ¤¹¤ë¤Ë¤Ï¡¢getenv()
¤ò»ÈÍѤ·¤Þ¤¹¡£
character*18 evaluecall getenv( 'SHELL', evalue )write(*,*) "'", evalue, "'"endgetfd : ³°ÉôÁõÃÖÈÖ¹æ¤ËÂФ¹¤ë¥Õ¥¡¥¤¥ëµ½Ò»Ò¤Î¼èÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
INTEGER*4 fildes, getfd, unitn/1/open( unitn, file='tgetfd.data' )fildes = getfd( unitn )if ( fildes .eq. -1 ) stop 'getfd
: ¥Õ¥¡¥¤¥ë¤Ï·ë¹ç¤µ¤ì¤Æ¤¤¤Þ¤»¤ó'write(*,*) '¥Õ¥¡¥¤¥ëµ½Ò»Ò = ', fildesendgetfilep : ³°ÉôÁõÃÖÈÖ¹æ¤ËÂФ¹¤ë¥Õ¥¡¥¤¥ë
¥Ý¥¤¥ó¥¿¤Î¼èÆÀ
¤³¤Î´Ø¿ô¤Ïɸ½à Fortran ¤ÎÆþ½ÐÎÏ¤È C ¤ÎÆþ½ÐÎϤòº®ºß¤µ¤»¤ë¤¿¤á¤Ë»ÈÍѤ·¤Þ¤¹¡£¤³¤Î¤è¤¦¤Êº®ºß¤Ï°Ü¿¢ÉÔ²Äǽ¤Ç¤¢¤ê¡¢º£¸å¥ê¥ê¡¼¥¹¤µ¤ì¤ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Þ¤¿¤Ï Fortran ¤Ç»ÈÍѤǤ¤ëÊݾڤϤ¢¤ê¤Þ¤»¤ó¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î´Ø¿ô¤Î»ÈÍѤϴ«¤á¤é¤ì¤Þ¤»¤ó¤·¡¢Ä¾ÀܤΥ¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¥æ¡¼¥¶¡¼¤Ï
getfilep
¤¬Ì᤹Ãͤò»ÈÍѤ¹¤ë¤¿¤á¤Ë ÆÈ¼«¤Î C ¥ë¡¼¥Á¥ó¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£C ¥ë¡¼¥Á¥ó¤ÎÎã¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£Îã : Fortran ¤Ï C ¤Î´Ø¿ô¤ËÅϤ¹¤Î¤Ë
getfilep
¤ò»ÈÍѤ·¤Þ¤¹¡£
getfilep
¤ò¼ÂºÝ¤Ë»ÈÍѤ¹¤ë C ´Ø¿ô¤ÎÎã¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£
tgetfilepC.c
#include <stdio.h>int c_read_ ( fd, buf, nbytes, buf_len )FILE **fd ;char *buf ;int *nbytes, buf_len ;{return fread( buf, 1, *nbytes, *fd ) ;}¾åµ¤Î¥½¡¼¥¹¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯¡¢¼Â¹Ô¤·¤¿Îã¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£
demo% 11% cc -c tgetfilepC.cdemo% 12% f77 tgetfilepC.o tgetfilepF.ftgetfileF.f:MAIN:demo% 13% a.out¿ô»ú¤Ï²¿ ? 3C ¤ÎÆÉ¤ó¤À¿ô»ú¤Ï 3demo% 14%¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØFortran ¥×¥í¥°¥é¥ß¥ó¥°¥¬¥¤¥É¡Ù¤Î Âè 11 ¾Ï¡ÖC ¤È Fortran ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¾È :open
(2)getlog : ¥æ¡¼¥¶¡¼¤Î¥í¥°¥¤¥ó̾¤Î¼èÆÀ
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
name CHARACTER*
n½ÐÎÏ ¥æ¡¼¥¶¡¼¤Î¥í¥°¥¤¥ó̾¡£¥×¥í¥»¥¹¤¬Ã¼Ëö¤«¤éÀÚ¤êÎ¥¤µ¤ì¤Æ¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¤¹¤Ù¤Æ¶õÇò¡£n ¤Ï¡¢ºÇ¤âŤ¤Ì¾Á°¤¬Æþ¤ë¤Î¤Ë½½Ê¬¤ÊÂ礤µ¤Ç¤¢¤ë¤³¤È¤¬É¬Í×
character*18 namecall getlog( name )write(*,*) "'", name, "'"endgetpid : ¥×¥í¥»¥¹¼±Ê̻ҤμèÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ ¸½¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¼±ÊÌ»Ò (ID)
INTEGER*4 getpid, pidpid = getpid()write(*,*) '¥×¥í¥»¥¹ID = ', pidendgetuid¡¢getgid : ¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¡¼¼±ÊÌ»Ò
¤Þ¤¿¤Ï¥°¥ë¡¼¥×¼±Ê̻ҤμèÆÀ
getuid
¤Ègetgid
¤Ï¤½¤ì¤¾¤ì¡¢¥æ¡¼¥¶¡¼¼±Ê̻Ҥޤ¿¤Ï¥°¥ë¡¼¥×¼±Ê̻ҤòÆÉ¤ß¼è¤ê¤Þ¤¹¡£getuid : ¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¡¼¼±Ê̻ҤμèÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ ¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¡¼¼±ÊÌ»Ò (ID) getgid : ¥×¥í¥»¥¹¤Î¥°¥ë¡¼¥×¼±Ê̻ҤμèÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ ¥×¥í¥»¥¹¤Î¥°¥ë¡¼¥×¼±ÊÌ»Ò (ID)
INTEGER*4 getuid, getgid, gid, uiduid = getuid()gid = getgid()write(*,*) uid, gidendhostnm : ¸½ºß¤Î¥Û¥¹¥È̾¤Î³ÍÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
name CHARACTER*
n½ÐÎÏ ¸½ºß¤Î¥Û¥¹¥È¤Î̾Á°¡£ n ¤Ï¡¢¥Û¥¹¥È̾¤¬Æþ¤ë¤Î¤Ë½½Ê¬¤ÊÂ礤µ¤Ç¤¢¤ë¤³¤È¤¬É¬Í× Ìá¤êÃÍ INTEGER*4
½ÐÎÏ status=0: Àµ¾ï, status>0: ¥¨¥é¡¼
INTEGER*4 hostnm, statuscharacter*8 namestatus = hostnm( name )write(*,*) '¥Û¥¹¥È̾ = "', name, '"'endidate : ¸½ºß¤ÎÆüÉÕ¤òÌ᤹
idate
¤Ë¤Ï 2 ¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£
- ɸ½à¥Ð¡¼¥¸¥ç¥ó - ¸½ºß¤Î¥·¥¹¥Æ¥àÆüÉÕ¤òÀ°¿ôÇÛÎó (Æü¡¢·î¡¢¤ª¤è¤Óǯ) ¤ËÆþ¤ì¤ë¡£
- VMS ¥Ð¡¼¥¸¥ç¥ó - ¸½ºß¤Î¥·¥¹¥Æ¥àÆüÉÕ¤ò 3 ¤Ä¤ÎÀ°ÊÑ¿ô (Æü¡¢·î¡¢¤ª¤è¤Óǯ) ¤ËÆþ¤ì¤ë¡£
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡Ö2000 ǯ¤Ë¤Ï̵¸ú¡×¤Ë¤Ê¤ë¡£
-lV77
¤È¤¤¤¦¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤Ï¡¢VMS ¥é¥¤¥Ö¥é¥ê¤òÍ׵ᤷ¡¢time()
¤Èidate()
¤Î VMS ¥Ð¡¼¥¸¥ç¥ó¤Ë¥ê¥ó¥¯¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È¡¢¥ê¥ó¥«¡¼¤Ïɸ½à¥Ð¡¼¥¸¥ç¥ó¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£(¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ÎVMS
¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢f77
¤Ç¤Ï-lv77
¥é¥¤¥Ö¥é¥ê¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È»È¤¨¤Þ¤¹¤¬¡¢f95
¤Ç¤Ï»ÈÍѤǤ¤Þ¤»¤ó¡£)ɸ½à¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¸½ºß¤Î¥·¥¹¥Æ¥àÆüÉÕ¤ò 1 ¤Ä¤ÎÀ°¿ôÇÛÎó¤ËÆü¡¢·î¡¢Ç¯¤Î½ç¤ÇÆþ¤ì¤Þ¤¹¡£
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
iarray INTEGER*4
½ÐÎÏ 3 Í×ÁÇ¿ô¤ÎÇÛÎ󡣯ü¡¢·î¡¢Ç¯
demo%cat tidate.f
INTEGER*4 iarray(3)call idate( iarray )write(*, "(' ÆüÉÕ¤Ï: ',3i5)" ) iarrayenddemo%f77 -silent tidate.f
demo%a.out
ÆüÉÕ¤Ï: 10 8 1998demo%VMS
idate( )
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
m INTEGER*4
½ÐÎÏ ·î (1 - 12) d INTEGER*4
½ÐÎÏ Æü (1 - 7) y INTEGER*4
½ÐÎÏ Ç¯ (1 - 99)¡¡2000 ǯ¤Ë¤Ï̵¸ú VMS
idate
( ) ¥ë¡¼¥Á¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥ê¥ó¥¯»þ¤È¥ë¡¼¥Á¥ó¤ò½é¤á¤Æ¸Æ¤Ó½Ð¤·¤Æ¼Â¹Ô¤¹¤ë¤È¤¤Ë·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£
Ãí -idate
( ) ¥ë¡¼¥Á¥ó¤Î VMS ¥Ð¡¼¥¸¥ç¥ó¤Ïǯ¤ò¼¨¤¹¾ì¹ç¤Ë 2 ·å¤ÎÃͤ·¤«ÊÖ¤µ¤Ê¤¤¤Î¤Ç¡¢2000 ǯ¤Ë¤Ï̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¥ë¡¼¥Á¥ó¤Î½ÐÎϤò»ÈÍѤ·¤ÆÆüÉմ֤κ¹¤ò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢1999 ǯ 12 ·î 31 Æü°Ê¹ß¤ÏÀµ¤·¤¯µ¡Ç½¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¤³¤Îidate
( ) ¥ë¡¼¥Á¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ï¡¢¥ë¡¼¥Á¥ó¤Î½é´ü¸Æ¤Ó½Ð¤·»þ¤Ë¼Â¹Ô»þ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ¥æ¡¼¥¶¡¼¤Ë·Ù¹ð¤·¤Þ¤¹¡£¤³¤Î¥ë¡¼¥Á¥ó¤ÎÂå¤ï¤ê¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤Î¤Ç¤¤ë¥ë¡¼¥Á¥ó¤È¤·¤Æ¡¢date_and_time
( ) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
ieee_flags¡¢ieee_handler¡¢sigfpe :
IEEE »»½Ñ±é»»¤³¤ì¤é¤ÎÉû¥×¥í¥°¥é¥à¤Ï¡¢Fortran ¥×¥í¥°¥é¥à¤Ç ANSI/IEEE µ¬³Ê 754-1985 ¤Î»»½Ñ±é»»µ¡Ç½¤ò½½Ê¬¤ËÍøÍѤ¹¤ë¤¿¤á¤ËɬÍפʥ⡼¥É¤È¾õÂÖ¤òÄ󶡤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÉû¥×¥í¥°¥é¥à¤Ï´Ø¿ô
ieee_flags
(3M)¡¢ieee_handler
(3M)¡¢¤ª¤è¤Ósigfpe
(3) ¤ÈÌ©ÀܤËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤é¤Î´Ø¿ô¤ò¸ú²ÌŪ¤Ë»ÈÍѤ¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
sigfpe
¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢ÉâÆ°¾®¿ôÅÀ¾õÂ֥쥸¥¹¥¿Æâ¤ÎÂбþ¤¹¤ë¥È¥é¥Ã¥×²Äǽ¥Þ¥¹¥¯¥Ó¥Ã¥È¤ò¥æ¡¼¥¶¡¼¤¬ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¾ÜºÙ¤Ï¡ØSPARC ¥¢¡¼¥¥Æ¥¯¥Á¥ã¥Þ¥Ë¥å¥¢¥ë¥Ð¡¼¥¸¥ç¥ó 8¡Ù(¥È¥Ã¥Ñ¥ó´©) ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£libm
´Ø¿ô¤Îieee_handler
¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥æ¡¼¥¶¡¼¤ËÂå¤ï¤Ã¤Æ¥È¥é¥Ã¥×²Äǽ¥Þ¥¹¥¯¥Ó¥Ã¥È¤òÀßÄꤷ¤Æ¤¯¤ì¤Þ¤¹¡£mode ¤Èexception ¤¬¼õ¤±ÉÕ¤±¤ëʸ»ú·¿¤Î¥¡¼¥ï¡¼¥É¤Ï¡¢action ¤ÎÃͤˤè¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£
Îã 1 : (¥Ï¡¼¥É¥¦¥§¥¢¤¬Êý¸þ¤ò¤â¤Ä´Ý¤á¥â¡¼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤ò½ü¤¤¤Æ) ´Ý¤áÊý¸þ¤ò¥¼¥í¤ÎÊý¸þ¤ËÀßÄꤷ¤Þ¤¹¡£
INTEGER*4 ieeercharacter*1 mode, out, inieeer = ieee_flags( 'set', 'direction', 'tozero', out )Îã 2 : ´Ý¤áÊý¸þ¤ò¥¯¥ê¥¢¡¼¤·¤Þ¤¹ (¥Ç¥Õ¥©¥ë¥È¤ÎÊý¸þ¡¢¤Ä¤Þ¤ê»Í¼Î¸ÞÆþ¤·¤Æ´Ý¤á¤Þ¤¹)¡£
character*1 out, inieeer = ieee_flags('clear','direction', in, out )Îã 3 : ÀßÄꤵ¤ì¤Æ¤¤¤ëÎ㳰ȯÀ¸¥Ó¥Ã¥È¤ò¤¹¤Ù¤Æ¥¯¥ê¥¢¡¼¤·¤Þ¤¹¡£
character*18 outieeer = ieee_flags( 'clear', 'exception', 'all', out )Îã 4 : Îã 3 ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼Îã³°¤¬È¯À¸¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¸¡½Ð¤·¤Þ¤¹¡£
character*18 outieeer = ieee_flags( 'get', 'exception', 'overflow', out )if (out .eq. 'overflow' ) stop 'overflow'¾åµ¤ÎÎã¤Ï¡¢
out
¤òoverflow
¤Ë¤·¡¢ieeer
¤ò 25 ¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£Æ±Íͤ˥³¡¼¥Ç¥£¥ó¥°¤¹¤ì¤Ð¡¢invalid
¤äinexact
¤Î¤è¤¦¤ÊÎã³°¤ò¸¡½Ð¤Ç¤¤Þ¤¹¡£Îã 5 :
handl.f
¤ÎÆâÍÆ¡£¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò½ñ¤¹þ¤ß¡¢»ÈÍѤ·¤Æ¤¤¤Þ¤¹ (f77
)¡£
address
¤Èfunction hand
¤ÎÀë¸À¤òINTEGER*8
¤ËÊѹ¹¤¹¤ë¤È¡¢64 ¥Ó¥Ã¥È¤Î SPARC V9 ´Ä¶ (-xarch=v9
) ¤ÇÎã 5 ¤¬¼Â¹Ô¤Ç¤¤Þ¤¹¡£¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¾È :floatingpoint
(3)¡¢signal
(3)¡¢sigfpe
(3)¡¢f77_floatingpoint
(3F)¡¢ieee_flags
(3M)¡¢ieee_handler
(3M)f77_floatingpoint.h : Fortran IEEE ÄêµÁ
¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë
f77_floatingpoint.h
¤Ï¡¢ANSI/IEEE µ¬³Ê 754-1985 ¤Ë½¾¤Ã¤Æ¡¢É¸½àÉâÆ°¾®¿ôÅÀ¤Î¼ÂÁõ¤Ë»ÈÍѤµ¤ì¤ëÄê¿ô¤È·¿¤òÄêµÁ¤·¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Î FORTRAN 77 ¥½¡¼¥¹¥×¥í¥°¥é¥à¤Ø¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¹Ô¤¤¤Þ¤¹¡£
#include "f77_floatingpoint.h"¤³¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢Fortran ¤Î¥³¥ó¥Ñ¥¤¥ëÁ°¤ËÁ°½èÍý¤¬É¬Íפˤʤê¤Þ¤¹¡£¤³¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢Ì¾Á°¤Î³ÈÄ¥»Ò¤¬
.F
¡¢f90
¤Þ¤¿¤Ï.F95
¤Î¾ì¹ç¤Ë¡¢¼«Æ°Åª¤ËÁ°½èÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¡£Fortran 95 ¥×¥í¥°¥é¥à¤Ï¡¢¥Õ¥¡¥¤¥ë
/floatingpoint.h
¤òÂå¤ï¤ê¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹¡£IEEE ´Ý¤á¥â¡¼¥É
fp_direction_type
IEEE ´Ý¤áÊý¸þ¥â¡¼¥É¤Î·¿¡£Îóµó¤Î½ç½ø¤Ï¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ê°Û¤Ê¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ SIGFPE ½èÍý
IEEE Îã³°½èÍý
IEEE ¥¯¥é¥¹Ê¬Îà
fp_class_type
IEEE ÉâÆ°¾®¿ôÅÀ¤ÎÃͤȵ¹æ¤Î¥¯¥é¥¹¤ÎÊÂ¤Ó ¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¾È :
ieee_environment
(3M)¡¢f77_ieee_environment
(3F)index¡¢rindex¡¢lnblnk : ÉôʬÎó¤Îº÷°ú¤Þ¤¿¤ÏŤµ
¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ëʸ»úÎó¤Ë¤è¤ëõº÷¤ò¹Ô¤¤¤Þ¤¹¡£
rindex
(a1, a2)ʸ»úÎó a1 ¤ÎÃæ¤ÇºÇ¸å¤Ë½Ð¸½¤¹¤ëʸ»úÎó a2 ¤Îº÷°ú lnblnk
(a1)ʸ»úÎó a1 ¤ÎÃæ¤ÎºÇ¸å¤Î¶õÇò°Ê³°¤Îʸ»ú¤Îº÷°ú
index
¤Ï°Ê²¼¤Î·Á¼°¤ò¤È¤ê¤Þ¤¹¡£
index : ʸ»úÎó¤ÎÃæ¤ÇºÇ½é¤Ë½Ð¸½¤¹¤ëÉôʬʸ»úÎó
index
¤Ï¡¢ÁȤ߹þ¤ß´Ø¿ô¤Ç¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
a1
CHARACTER
ÆþÎÏ Ê¸»úÎó a2
CHARACTER
ÆþÎÏ ÉôʬÎó Ìá¤êÃÍ INTEGER
½ÐÎÏ n>0: a1 ¤ÎÃæ¤ÇºÇ½é¤Ë½Ð¸½¤¹¤ë a2 ¤Îº÷°ú
n=0: a1 ¤ÎÃæ¤Ë a2 ¤¬½Ð¸½¤·¤Ê¤¤
INTEGER*8
¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢64 ¥Ó¥Ã¥È´Ä¶ÍѤ˥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢¤µ¤é¤Ëʸ»úÊÑ¿ô a1 ¤¬Èó¾ï¤ËÂ礤Êʸ»úÎó¤Ç¤¢¤ë¤È¤¤Ë (2 ¥®¥¬¥Ð¥¤¥È¤òͤ¨¤ë¤â¤Î)¡¢index
( ) ¤ÏINTEGER*8
ÃͤòÌᤷ¤Þ¤¹¡£rindex : ʸ»úÎó¤ÎÃæ¤ÇºÇ¸å¤Ë½Ð¸½¤¹¤ëÉôʬʸ»úÎó
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
lnblnk : ʸ»úÎó¤ÎÃæ¤ÎºÇ¸å¤Î¶õÇò°Ê³°¤Îʸ»ú
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
a1 CHARACTER
ÆþÎÏ Ê¸»úÎó Ìá¤êÃÍ INTEGER*4
¤Þ¤¿¤ÏINTEGER*8
½ÐÎÏ n>0: a1 ¤ÎÃæ¤ÎºÇ¸å¤Î¶õÇò°Ê³°¤Îʸ»ú¤Îº÷°ú n=0: a1 ¤Ï¤¹¤Ù¤Æ¶õÇò°Ê³°¤Îʸ»ú¡£ 64 ¥Ó¥Ã¥È´Ä¶¤Î¾ì¹ç¤Ï¡¢ INTEGER*8
¤¬Ìá¤ë¡£Îã :
index()
¡¢rindex()
¡¢lnblnk()
Ãí - 64 ¥Ó¥Ã¥È´Ä¶¤Çưºî¤¹¤ë¤è¤¦¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ï¡¢Èó¾ï¤ËÂ礤Êʸ»úÎó¤ò½èÍý¤¹¤ë¤Ë¤Ïindex
¡¢rindex
¡¢¤ª¤è¤Ólnblnk
(¤ª¤è¤ÓÊÖ¤µ¤ì¤ëÊÑ¿ô)INTEGER*8
¤òÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
inmax : Àµ¤ÎÀ°¿ô¤ÎºÇÂçÃͤÎÊÖµÑ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ Àµ¤ÎÀ°¿ô¤ÎºÇÂçÃÍ
INTEGER*4 inmax, mm = inmax()write(*,*) menddemo%f77 -silent tinmax.f
demo%a.out
2147483647demo%»²¾È :
libm_single
(3f)¡¢libm_double
(3f)»²¾È :¡ØFORTRAN 77 ¸À¸ì¥ê¥Õ¥¡¥ì¥ó¥¹¡Ù¤ËµºÜ¤µ¤ì¤¿¡¢ÁȤ߹þ¤ß´Ø¿ô
ephuge
( )ioinit : Æþ½ÐÎÏ¥×¥í¥Ñ¥Æ¥£¤Î½é´ü²½
IOINIT
¥ë¡¼¥Á¥ó (FORTRAN 77 ¤Î¤ß) ¤Ï¡¢IOINIT
¸Æ¤Ó½Ð¤·¤Î¸å¤Ë³«¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢Æþ½ÐÎÏ¥Õ¥¡¥¤¥ë¤Î¥×¥í¥Ñ¥Æ¥£¤ò³ÎÄꤷ¤Þ¤¹¡£IOINIT
¤ÎÀ©¸æ¤¹¤ëÆþ½ÐÎÏ¥×¥í¥Ñ¥Æ¥£¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
- ¥¥ã¥ê¥Ã¥¸À©¸æ - ¤¹¤Ù¤Æ¤ÎÏÀÍýÁõÃ֤ǥ¥ã¥ê¥Ã¥¸À©¸æ¤òǧ¼±¤¹¤ë
- ¶õÇò/¥¼¥í - ÆþÎϥǡ¼¥¿¥Õ¥£¡¼¥ë¥ÉÆâ¤Î¶õÇò¤ò¶õÇò¤Þ¤¿¤Ï¥¼¥í¤È¤·¤Æ°·¤¦
- ¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤Î°ÌÃÖ - ¥Õ¥¡¥¤¥ë¤ò³«¤¯ºÝ¡¢¥Ý¥¤¥ó¥¿¤ò¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Þ¤¿¤Ï ¥Õ¥¡¥¤¥ë¤Î½ªÎ»¤Ë°ÌÃÖÉÕ¤±¤ë
- ÀÜÆ¬¼ - 0 £ NN £ 19 ¤Ç¡¢ <ÀÜÆ¬¼> NN ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òõº÷¤·¡¢³«¤¯
f77
Æþ½ÐÎÏ¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¹°è¤Î¥Ñ¥é¥á¡¼¥¿¤ò½é´ü²½¤·¤Þ¤¹¡£- »ØÄꤷ¤¿Æþ½ÐÎÏ¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤Ç¡¢ÏÀÍýÁõÃÖ 0 ¤«¤é 19 ¤Þ¤Ç¤ò³«¤¤Þ¤¹ (³°Éô¤ËÄêµÁ¤·¤¿¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô»þ¤ËÏÀÍýÁõÃÖ¤ËÀܳ¤·¤Þ¤¹)¡£
Æþ½ÐÎÏ¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤Î·Ñ³
Æþ½ÐÎÏ¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤ÏÀܳ¤¬¤¢¤ë¸Â¤êŬÍѤµ¤ì¤Þ¤¹¡£ÁõÃÖ¤òÊĤ¸¤ë¤È¡¢¥×¥í¥Ñ¥Æ¥£¤ÏŬÍѤµ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£¤¢¤é¤«¤¸¤á³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ëÁõÃÖ 5 ¤È 6 ¤ÏÎã³°¤Ç¡¢¤½¤ì¤é¤ÎÁõÃ֤ˤϥ¥ã¥ê¥Ã¥¸À©¸æ¤È¶õÇò/¥¼¥í¤¬¾ï¤ËŬÍѤµ¤ì¤Þ¤¹¡£
ÆâÉô¥Õ¥é¥°
IOINIT
¤Ï¡¢¼Â¹Ô»þ¤ÎÆþ½ÐÎÏ¥·¥¹¥Æ¥à¤ÈÄÌ¿®¤¹¤ë¤¿¤á¤Ë̾Á°ÉÕ¤¶¦ÄÌ¥Ö¥í¥Ã¥¯¤ò»ÈÍѤ·¤Þ¤¹¡£IOINIT
¤Ï¡¢¼¡¤Î̾Á°ÉÕ¤¶¦ÄÌ¥Ö¥í¥Ã¥¯¤ÈƱÅù¤ËÆâÉô¥Õ¥é¥°¤ò³ÊǼ¤·¤Þ¤¹¡£
INTEGER*2 IEOF, ICTL, IBZRCOMMON /_ _IOIFLG/ IEOF, ICTL, IBZR ! ¥æ¡¼¥¶¡¼¤Î̾Á°¶õ´Ö¤Ç¤Ï¤Ê¤¤3.0.1 °ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢Ì¾Á°ÉÕ¤¶¦ÄÌ¥Ö¥í¥Ã¥¯¤Ï
IOIFLG
¤È¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤·¤¿¡£¥æ¡¼¥¶¡¼ÄêµÁ¤Î¶¦ÄÌ¥Ö¥í¥Ã¥¯¤È¤Î¶¥¹ç¤òËɤ°¤¿¤á¡¢¤³¤Î̾Á°¤ò __IOIFLG
¤ÈÊѹ¹¤·¤Þ¤·¤¿¡£¥½¡¼¥¹¥³¡¼¥É
IOINIT
¤Î°ìÈÌŪ¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¥æ¡¼¥¶¡¼¤ÎÍ×µá¤Ë±þ¤¸¤¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¤¿¤á¡¢¥½¡¼¥¹¥³¡¼¥É¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï Fortran 77 ¤Ç½ñ¤«¤ì¤Æ¤ª¤ê¡¢¼¡¤Î¤è¤¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
- <install>
/SUNWspro/<
release>/src/ioinit.f
- Sun WorkShop ¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Îɸ½à¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ã¤¿¾ì¹ç¤Ï¡¢<install> ¤ÏÄ̾ï
/opt
¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢<release> ¥Ñ¥¹¤Ï¥³¥ó¥Ñ¥¤¥é¤Î¥ê¥ê¡¼¥¹¤´¤È¤ËÊѤï¤ê¤Þ¤¹¡£ioinit ¤Î»ÈÍÑË¡
ioinit
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
À©¸Â
- prefix ¤Ï 30 ʸ»ú¤òͤ¨¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
- ´Ä¶Ì¾¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤ë¥Ñ¥¹Ì¾¤Ï 255 ʸ»ú¤òͤ¨¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
°ú¿ô¤ÎÀâÌÀ
ioinit
¤Î°ú¿ô¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£cctl (¥¥ã¥ê¥Ã¥¸À©¸æ)
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¥ã¥ê¥Ã¥¸À©¸æ¤Ï¤É¤ÎÏÀÍýÁõÃ֤Ǥâǧ¼±¤µ¤ì¤Þ¤»¤ó¡£cctl ¤¬ .
true
. ¤Î¾ì¹ç¡¢¥¥ã¥ê¥Ã¥¸À©¸æ¤Ï¡¢¿ÇÃÇÍÑ¥Á¥ã¥Í¥ë¤Ç¤¢¤ëÁõÃÖ 0 ¤ò½ü¤¤¤¿¤¹¤Ù¤Æ¤ÎÏÀÍýÁõÃÖ¤ËÂФ¹¤ë½ñ¼°ÉÕ¤½ÐÎϤÇǧ¼±¤µ¤ì¤Þ¤¹¡£cctl ¤¬ .false
. ¤Î¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ËÌá¤ê¤Þ¤¹¡£bzro (¶õÇò)
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÆþÎϥǡ¼¥¿¥Õ¥£¡¼¥ë¥ÉÆâ¤Î¸å³¤Î¶õÇò¤ÈËä¤á¹þ¤ß¶õÇò¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£bzro ¤¬ .
true
. ¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¶õÇò¤Ï¥¼¥í¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£bzro ¤ò .false
. ¤Ë¤·¤¿¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ËÌá¤ê¤Þ¤¹¡£apnd (ÄɲÃ)
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢½ç¼¡¥¢¥¯¥»¥¹ÍѤ˳«¤«¤ì¤¿¥Õ¥¡¥¤¥ë¤ÏÀèÆ¬¤Ë°ÌÃÖÉÕ¤±¤é¤ì¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤Î´û¸¥Ç¡¼¥¿¤Ë½ñ¤¹þ¤ß¤òÄɲ乤ë¾ì¹ç¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë½ªÎ»¥Þ¡¼¥¯¤Ë¥Ý¥¤¥ó¥¿¤ò°ÌÃÖÉÕ¤±¤Æ¥Õ¥¡¥¤¥ë¤ò³«¤¯¤³¤È¤¬É¬Íפˤʤä¿¤ê¡¢ÊØÍø¤Ç¤¢¤Ã¤¿¤ê¤·¤Þ¤¹¡£apnd ¤ò .
true
. ¤Ë¤·¤¿¾ì¹ç¡¢¤É¤ÎÏÀÍýÁõÃ֤Ǥ¢¤Ã¤Æ¤â¡¢¥Õ¥¡¥¤¥ë¤ò³«¤¤¤¿»þ¤Ë¥Ý¥¤¥ó¥¿¤Ï¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤Ë°ÌÃÖÉÕ¤±¤é¤ì¤Þ¤¹¡£apnd ¤ò .false
. ¤Ë¤·¤¿¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ËÌá¤ê¤Þ¤¹¡£prefix (¼«Æ°¥Õ¥¡¥¤¥ë·ë¹ç)
°ú¿ô prefix ¤¬¶õÇò°Ê³°¤Îʸ»úÎó¤Ê¤é¤Ð¡¢prefixNN ¤È¤¤¤¦·Á¼°¤Î̾Á°¤¬¥×¥í¥°¥é¥à´Ä¶Æâ¤Ç¸¡º÷¤µ¤ì¤Þ¤¹¡£¸¡º÷¤µ¤ì¤¿¤½¤ì¤¾¤ì¤Î̾Á°¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ëÃͤϡ¢ÏÀÍýÁõÃÖ NN ¤ò½ñ¼°ÉÕ¤½ç¼¡¥¢¥¯¥»¥¹ÍѤ˳«¤¯¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
¤³¤Î¸¡º÷¤ÈÀܳ¤Ï¡¢0 ¤«¤é 19 ´Ö¤Î 0 ¤È 19 ¤ò´Þ¤à NN ¤ËÂФ·¤Æ¤Î¤ß¹Ô¤ï¤ì¤Þ¤¹¡£19 ¤è¤êÂ礤¤ NN ¤ËÂФ·¤Æ¤Ï²¿¤â¹Ô¤ï¤ì¤Þ¤»¤ó¡£¡Ö¥½¡¼¥¹¥³¡¼¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
vrbose (IOINIT ¤Î³èư¾õ¶·)
°ú¿ô vrbose ¤ò .
true
. ¤Ë¤·¤¿¾ì¹ç¡¢ioinit
¤Ï¼«Ê¬¼«¿È¤Î³èư¾õ¶·¤Ë¤Ä¤¤¤ÆÊó¹ð¤·¤Þ¤¹¡£Îã : ¥×¥í¥°¥é¥à
myprogram
¤Ï¼¡¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤ò¹Ô¤¤¤Þ¤¹¡£
call ioinit( .true., .false., .false., 'FORT', .false.)¥Õ¥¡¥¤¥ë̾¤Î³ä¤êÅö¤Æ¤Ï¡¢¾¯¤Ê¤¯¤È¤â¼¡¤Î 2 ¤Ä¤ÎÊýË¡¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
demo$FORT01=mydata
demo$FORT12=myresults
demo$export FORT01 FORT12
demo$myprogram
demo%setenv FORT01 mydata
demo%setenv FORT12 myresults
demo%myprogram
¤É¤Á¤é¤ÎÊýË¡¤ò»ÈÍѤ·¤Æ¤â¡¢¾åµ¤ÎÎã¤Î
ioinit
¸Æ¤Ó½Ð¤·¤«¤é¤Ï°Ê²¼¤Î·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤¹¡£
- ³«¤«¤ì¤¿ÏÀÍýÁõÃÖ 1 ¤ËÂФ·¤Æ¥Õ¥¡¥¤¥ë
mydata
¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£- ³«¤«¤ì¤¿ÏÀÍýÁõÃÖ 12 ¤ËÂФ·¤Æ¥Õ¥¡¥¤¥ë
myresults
¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£- ¾åµ 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤òÀèÆ¬¤Ë°ÌÃÖÉÕ¤±¤Þ¤¹¡£
- ½ñ¼°ÉÕ¤½ÐÎϤΠ1 ·åÌܤϽüµî¤µ¤ì¡¢¥¥ã¥ê¥Ã¥¸À©¸æ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
- Ëä¤á¹þ¤ß¶õÇò¤È¸å³¤Î¶õÇò¤ÏÆþÎÏ»þ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
Îã :
ioinit()
¡Ý ʤӤȥ³¥ó¥Ñ¥¤¥ë
sh
¤Þ¤¿¤Ïcsh
¤ò»ÈÍѤ·¤Æ°Ê²¼¤Î¤è¤¦¤Ë´Ä¶ÊÑ¿ô¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
demo$FORT01=tioinit.data
demo$FORT12=tioinit.au
demo$export FORT01 FORT12
demo$ioinit()
demo%setenv FORT01 tioinit.data
demo%setenv FORT12 tioinit.au
ioinit()
demo%a.out
demo%cat tioinit.au
abc 123PDQ 789ioinit()
itime : ¸½ºß¤Î»þ¹ï
itime
¤Ï¡¢¸½ºß¤Î¥·¥¹¥Æ¥à»þ¹ï¤Î»þ¡¢Ê¬¡¢ÉäòÀ°¿ôÇÛÎó¤ËÆþ¤ì¤Þ¤¹¡£¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
iarray INTEGER*4
½ÐÎÏ 3 Í×ÁǤÎÇÛÎó: iarray(1) = »þ iarray(2) = ʬ iarray(3) = ÉÃ
demo%cat titime.f
INTEGER*4 iarray(3)call itime( iarray )write (*, "(' »þ¹ï¤Ï: ',3i5)" ) iarrayenddemo%f77 -silent titime.f
demo%a.out
»þ¹ï¤Ï: 15 42 35»²¾È :
time
(3f)¡¢ctime
(3F)¡¢fdate
(3F)kill : ¥×¥í¥»¥¹¤Ø¤Î¥·¥°¥Ê¥ë¤ÎÁ÷¿®
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
pid INTEGER*4
ÆþÎÏ ¥æ¡¼¥¶¡¼¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¼±ÊÌ»Ò signum INTEGER*4
ÆþÎÏ Í¸ú¤Ê¥·¥°¥Ê¥ëÈֹ档 signal
(3) ¤ò»²¾ÈÌá¤êÃÍ INTEGER*4
½ÐÎÏ status=0: Àµ¾ï status>0: ¥¨¥é¡¼¥³¡¼¥É Îã (³ºÅöÉôʬ¤Î¤ß):
kill()
¤ò»ÈÍѤ·¤Æ¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ê¤Þ¤¹¡£
INTEGER*4 kill, pid, signum* ...status = kill( pid, signum )if ( status .ne. 0 ) stop 'kill: ¥¨¥é¡¼'write(*,*) '¥·¥°¥Ê¥ë ', signum, '¤ò¥×¥í¥»¥¹ ', pid, ' ¤ËÁ÷ÉÕ¤·¤Þ¤·¤¿'end´Ø¿ô¤Ï¡¢signum ¤È¤¤¤¦À°¿ô·¿¤ÎÈÖ¹æ¤Ç¸½¤ï¤µ¤ì¤ë¥·¥°¥Ê¥ë¤ò pid ¤È¤¤¤¦¥×¥í¥»¥¹¤ËÁ÷¤ê¤Þ¤¹¡£Í¸ú¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ï¡¢
/usr/include/sys/signal.h
¤È¤¤¤¦ C ¸À¸ì¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ëÃæ¤Ë¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£»²¾È :
kill
(2)¡¢signal
(3)¡¢signal
(3F)¡¢fork
(3F)¡¢perror
(3F)link¡¢symlnk : ´û¸¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤ÎºîÀ®
link
¤Ï´û¸¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤òºîÀ®¤·¤Þ¤¹¡£symlnk
¤Ï´û¸¥Õ¥¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤Þ¤¹¡£´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
link : ´û¸¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤ÎºîÀ®
Îã 1 :
link
¡Ý
¥Õ¥¡¥¤¥ëtlink.db.data.1
¤ËÂФ·¤Æ¡¢data1
¤È¤¤¤¦Ì¾Á°¤Î¥ê¥ó¥¯¤òºîÀ®¤·¤Þ¤¹¡£
symlnk : ´û¸¥Õ¥¡¥¤¥ë¤Ø¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎºîÀ®
Îã 2 :
symlnk
¡Ý
¥Õ¥¡¥¤¥ëtlink.db.data.1
¤ËÂФ·¤Æ¡¢data1
¤È¤¤¤¦Ì¾Á°¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤Þ¤¹¡£
»²¾È :
link
(2)¡¢symlink
(2)¡¢perror
(3F)¡¢unlink
(3F)
Ãí - ¥Ñ¥¹Ì¾¤ò<sys/param.h>
¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëMAXPATHLEN
¤è¤êŤ¯¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
loc : ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤òÌ᤹
¤³¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
INTEGER*4 k, locreal arg / 9.0 /k = loc( arg )write(*,*) kend
Ãí - 64 ¥Ó¥Ã¥È Solaris 7 ¤Çưºî¤¹¤ë¤è¤¦¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ï¡¢loc
( ) ´Ø¿ô¤«¤é½ÐÎϤòÊÖ¤¹ÊÑ¿ôINTEGER*8
¤òÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
long¡¢short : À°¿ô¥ª¥Ö¥¸¥§¥¯¥È¤ÎÊÑ´¹
long
¤ª¤è¤Óshort
¤ÏINTEGER*4
¤ÈINTEGER*2
´Ö¤ÇÀ°¿ô¥ª¥Ö¥¸¥§¥¯¥È¤ÎÊÑ´¹¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤ÎÊÑ´¹¤Ï¡¢¥µ¥Ö¥×¥í¥°¥é¥à¸Æ¤Ó½Ð¤·°ìÍ÷¤Ç¤ÏÆÃ¤Ë͸ú¤Ç¤¹¡£long : ûÀ°¿ô (INTEGER*2) ¤«¤éĹÀ°¿ô (INTEGER*4) ¤Ø¤ÎÊÑ´¹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
int2 INTEGER*2
ÆþÎÏ Ìá¤êÃÍ INTEGER*4
½ÐÎÏ short : ĹÀ°¿ô¤«¤éûÀ°¿ô¤Ø¤ÎÊÑ´¹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
int4 INTEGER*4
ÆþÎÏ Ìá¤êÃÍ INTEGER*2
½ÐÎÏ Îã (³ºÅöÉôʬ¤Î¤ß):
long()
¤Èshort()
integer*4 int4/8/, longinteger*2 int2/8/, shortcall ExpecLong( long(int2) )call ExpecShort( short(int4) )...end
ExpecLong
¤Ï¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¡¢Ä¹À°¿ô (INTEGER*4
) ¤Î°ú¿ô¤ò¤È¤ê¤Þ¤¹¡£ExpecShort
¤ÏûÀ°¿ô (INTEGER*2
) ¤Î°ú¿ô¤ò¤È¤ê¤Þ¤¹¡£
long
¤Ï¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·¤ËÄê¿ô¤¬»ÈÍѤµ¤ì¡¢-i2
¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤ËÌòΩ¤Á¤Þ¤¹¡£
short
¤Ï¡¢Ä¹¤¤·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òû¤¤·¿¤ÎÀ°¿ô¤È¤·¤ÆÅϤ¹É¬Íפ¬¤¢¤ë¾ì¹ç¤ËÌòΩ¤Á¤Þ¤¹¡£Ã»¤¤·¿¤ËÅϤ¹À°¿ô¤¬Â礤¹¤®¤¿¾ì¹ç¡¢¥¨¥é¡¼¤ÏȯÀ¸¤·¤Þ¤»¤ó¤¬¡¢¥×¥í¥°¥é¥à¤¬Í½´ü¤·¤Ê¤¤Æ°¤¤ò¤·¤Þ¤¹¡£longjmp¡¢isetjmp : isetjmp ¤ÇÀßÄꤷ¤¿°ÌÃÖ¤ËÌ᤹
isetjmp
¤Ïlongjmp
¤Î°ÌÃÖ¤òÀßÄꤷ¤Þ¤¹¡£longjmp
¤Ïisetjump
¤ÇÀßÄꤷ¤¿°ÌÃÖ¤ËÌá¤ê¤Þ¤¹¡£isetjmp : longjmp ¤ÎÀßÄê
¤³¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
env INTEGER*4
½ÐÎÏ env ¤Ï 12 Í×ÁǤÎÀ°¿ôÇÛÎó Ìá¤êÃÍ INTEGER*4
½ÐÎÏ ival = 0 ¡¢isetjmp
¤¬ÌÀ¼¨Åª¤Ë ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç ival ¹ 0¡¢isetjmp
¤¬longjmp
¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹çlongjmp : isetjmp ¤ÇÀßÄꤷ¤¿°ÌÃÖ¤ËÌ᤹
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
env INTEGER*4
ÆþÎÏ env ¤Ï isetjmp ¤Ç½é´ü²½¤µ¤ì¤¿ 12 ¸ì¤ÎÀ°¿ôÇÛÎó ival INTEGER*4
½ÐÎÏ ival = 0¡¢isetjmp ¤¬ÌÀ¼¨Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç ival ¹ 0¡¢isetjmp ¤¬ longjmp ¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç ÀâÌÀ
isetjmp
¤Èlongjmp
¥ë¡¼¥Á¥ó¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¥ë¡¼¥Á¥ó¤ÇÁø¶ø¤¹¤ë¥¨¥é¡¼¤ä¾ã³²¤ò½èÃÖ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ·¤Þ¤¹¡£¤³¤Î 2 ¤Ä¤Ï¡¢f77
¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ç¤¹¡£¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¡¢ºÇ¸å¤Î¼êÃʤȤ·¤Æ¤Î¤ß»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤Î¼è¤ê°·¤¤¤Ë¤Ï¡¢½½Ê¬Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤Þ¤¿¡¢°Ü¿¢À¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥Ð¥°¤ä¤½¤Î¾¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢
setjmp
(3V) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
isetjmp
¤Ï env ¤Ë¥¹¥¿¥Ã¥¯´Ä¶¤òÊݸ¤·¤Þ¤¹¡£¤Þ¤¿¥ì¥¸¥¹¥¿´Ä¶¤âÊݸ¤·¤Þ¤¹¡£
longjmp
¤Ï¡¢ºÇ¸å¤Ëisetjmp
¤ò¸Æ¤Ó½Ð¤·¤ÆÊݸ¤·¤¿´Ä¶¤òÉü¸µ¤·¡¢¤¢¤¿¤«¤âisetjmp
¤Î¸Æ¤Ó½Ð¤·¤¬ÃÍ ival ¤òÊÖ¤·¤¿¤«¤Î¤è¤¦¤ËÌá¤ê¡¢¼Â¹Ô¤ò·Ñ³¤·¤Þ¤¹¡£
isetjmp
¤«¤éÊÖ¤µ¤ì¤¿À°¿ô¼° ival ¤Ï¡¢longjmp
¤¬¸Æ¤Ó½Ð¤µ¤ì¤Ê¤±¤ì¤Ð¥¼¥í¤Ç¤¹¡£longjmp
¤¬¸Æ¤Ó½Ð¤µ¤ì¤ì¤Ð¡¢¥¼¥í°Ê³°¤Ë¤Ê¤ê¤Þ¤¹¡£Îã :
isetjmp
¤Èlongjmp
¤ò»ÈÍѤ·¤¿¥³¡¼¥ÉÉôʬ
À©¸Â
longjmp()
¤ò¸Æ¤Ó½Ð¤¹Á°¤Ëisetjmp
¤òµ¯Æ°¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£isetjmp
¤Èlongjmp
¤Ç»ÈÍѤµ¤ì¤ëÀ°¿ô·¿¤ÎÇÛÎó°ú¿ô env ¤Ï¡¢ºÇÄã 12 ¸Ä¤ÎÍ×ÁǤ«¤é¤Ê¤ëÇÛÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£isetjmp
¤ò¸Æ¤Ó½Ð¤¹¥ë¡¼¥Á¥ó¤«¤élongjmp
¤ò¸Æ¤Ó½Ð¤¹¥ë¡¼¥Á¥ó¤Ø¡¢¶¦ÄÌ¥Ö¥í¥Ã¥¯·Ðͳ¤Ç¤¢¤ë¤¤¤Ï°ú¿ô¤È¤·¤Æ env ÊÑ¿ô¤òÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£longjmp
¤Ï¥¹¥¿¥Ã¥¯¤ò¥¯¥ê¡¼¥ó¥¢¥Ã¥×¤·¤è¤¦¤È¤·¤Þ¤¹¡£longjmp
¤Ïisetjmp
¤è¤ê¤âÄã¥ì¥Ù¥ë¤Î¥ë¡¼¥Á¥ó¤«¤é¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£- ¼ê³¤Ì¾¤Î°ú¿ô¤È¤·¤Æ
isetjmp
¤òÅϤ·¤Æ¤âºîÍѤ·¤Þ¤»¤ó¡£malloc¡¢malloc 64: µ²±Îΰè¤Î³ä¤êÅö¤Æ¤È¤½¤Î¥¢¥É¥ì¥¹¤Î³ÍÆÀ
malloc
() ´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ãí - Solaris 7 ¤Ê¤É¤Î 64 ¥Ó¥Ã¥È´Ä¶¤Çưºî¤¹¤ë¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¡¢malloc()
´Ø¿ô¤È¤½¤Î½ÐÎϤò¼õ¤±¼è¤ëÊÑ¿ô¤òINTEGER*8
¤ÈÀë¸À¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¸ß´¹À¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤Ë¤Ï¡¢32 ¥Ó¥Ã¥È´Ä¶¤Þ¤¿¤Ï 64 ¥Ó¥Ã¥È´Ä¶¤ÎξÊý¤Ç¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¥×¥í¥°¥é¥àÆâ¤Ç¡¢malloc()
¤ÎÂå¤ï¤ê¤Ëmalloc64()
¤ò»ÈÍѤ·¤Þ¤¹¡£
´Ø¿ô
malloc64
(3F)¤Ï¡¢¥×¥í¥°¥é¥à¤ò 32 ¥Ó¥Ã¥È´Ä¶¤È 64 ¥Ó¥Ã¥È´Ä¶´Ö¤Ç¸ß´¹À¤ò»ý¤¿¤»¤ë¤¿¤á¤ËÄ󶡤µ¤ì¤¿´Ø¿ô¤Ç¤¹¡£
Ìá¤êÃÍ INTEGER*8
½ÐÎÏ k >
0: k ¤Ï³ä¤êÅö¤Æ¤é¤ì¤¿µ²±Îΰè¤Î³«»Ï¥¢¥É¥ì¥¹ k=0: ¥¨¥é¡¼
¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢µ²±Îΰè¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÎΰè¤Î³«»Ï¥¢¥É¥ì¥¹¤òÊÖ¤·¤Þ¤¹¡£(64 ¥Ó¥Ã¥È´Ä¶¤Ç¤Ï¡¢¤³¤ÎÊÖ¤µ¤ì¤¿¥Ð¥¤¥È¥¢¥É¥ì¥¹¤Ï¡¢
INTEGER*4
¤Î¿ôÃÍÈϰϳ°¤Ë¤Ê¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¼õ¤±¼è¤ê¦¤ÎÊÑ¿ô¤Ç¤ÏINTEGER*8
¤ÈÀë¸À¤·¡¢¥á¥â¥ê¡¼¥¢¥É¥ì¥¹¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£) ¤³¤Î¥á¥â¥ê¡¼¤ÎÎΰè¤Ï¡¢½é´ü²½¤Ç¤¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¥á¥â¥ê¡¼Îΰ褬¡¢¤¢¤ëÃÍ¡¢ÆÃ¤Ë¥¼¥í¤Ë»öÁ°ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤Ï²¾Äꤷ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£Îã :
malloc
¤ò»ÈÍѤ·¤¿¥³¡¼¥ÉÉôʬ
parameter (NX=1000)pointer ( p1, X )real*4 X(NX)...p1 = malloc( NX*4 )if ( p1 .eq. 0 ) stop 'malloc: ³ä¤êÅö¤ÆÉÔ²Ä'do 11 i=1,NX11 X(i) = 0....end¾åµ¤ÎÎã¤Ç¤Ï¡¢
p1
¤Ç»ØÄꤵ¤ì¤ë 4,000 ¥Ð¥¤¥È¤Î¥á¥â¥ê¡¼¤ò³ÍÆÀ¤·¡¢¤³¤ÎÎΰè¤ò 0 ¤Ë½é´ü²½¤·¤Æ¤¤¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Öfree : Malloc ¤Ë¤è¤ê³ä¤êÅö¤Æ¤é¤ì¤¿µ²±Îΰè¤Î ³ä¤êÅö¤Æ²ò½ü¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
mvbits : ¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î°Üư
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
src INTEGER*4
ÆþÎÏ °Üư¸µ ini1 INTEGER*4
ÆþÎÏ °Üư¸µ¤Ç¤Î¥Ó¥Ã¥È¤Î½é´ü°ÌÃÖ nbits INTEGER*4
ÆþÎÏ °Üư¤µ¤»¤ë¥Ó¥Ã¥È¿ô des INTEGER*4
½ÐÎÏ °ÜưÀè ini2 INTEGER*4
ÆþÎÏ °ÜưÀè¤Ç¤Î¥Ó¥Ã¥È¤Î½é´ü°ÌÃÖ
- ³Æ¥Ó¥Ã¥È¤Ë¤Ï¡¢ºÇ²¼°Ì¥Ó¥Ã¥È¤«¤éºÇ¾å°Ì¥Ó¥Ã¥È¤Þ¤Ç¡¢0 ¤«¤é 31 ¤Þ¤Ç¤ÎÈֹ椬ÉÕ¤±¤é¤ì¤Þ¤¹¡£
MVBITS
¤Ï des ¤Î¥Ó¥Ã¥È ini2 ¤«¤é ini2+nbits-1
¤Þ¤Ç¤òÊѹ¹¤·¡¢src ¤Î¥Ó¥Ã¥È¤ÏÊѹ¹¤·¤Þ¤»¤ó¡£- À©¸Â»ö¹à:
perror¡¢gerror¡¢ierrno : ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¼èÆÀ
¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¡¢°Ê²¼¤Î´Ø¿ô¤ò¼Â¹Ô¤·¤Þ¤¹¡£
gerror
¥·¥¹¥Æ¥à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ (ºÇ¸å¤Ë¸¡½Ð¤µ¤ì¤¿¥·¥¹¥Æ¥à¥¨¥é¡¼¤Î) ¤ÎÆÉ¤ß¼è¤ê ierrno
ºÇ¸å¤Ë¸¡½Ð¤µ¤ì¤¿¥·¥¹¥Æ¥à¥¨¥é¡¼¤Î¥¨¥é¡¼ÈÖ¹æ¤ÎÆÉ¤ß¼è¤ê perror : ÏÀÍýÁõÃÖ 0 (stderr) ¤Ø¤Î¥á¥Ã¥»¡¼¥¸½ÐÎÏ
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
string CHARACTER
*
nÆþÎÏ ¥á¥Ã¥»¡¼¥¸¡£É¸½à¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ËÀè¤À¤Ã¤Æ½ÐÎϤµ¤ì¤ë¡£ºÇ¸å¤Ë¸¡½Ð¤µ¤ì¤¿¥·¥¹¥Æ¥à¥¨¥é¡¼¤ËÂФ¹¤ë¥á¥Ã¥»¡¼¥¸
call perror( "¥Õ¥¡¥¤¥ë¤Ï½ñ¼°ÉÕ¤Æþ½ÐÎÏÍÑ" )gerror : ºÇ¸å¤Ë¸¡½Ð¤µ¤ì¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¼èÆÀ
¥µ¥Ö¥ë¡¼¥Á¥ó¤Þ¤¿¤Ï´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
string CHARACTER
*
n½ÐÎÏ ºÇ¸å¤Ë¸¡½Ð¤µ¤ì¤¿¥·¥¹¥Æ¥à
¥¨¥é¡¼¤Î¥á¥Ã¥»¡¼¥¸Îã 2 :
gerror
¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¤Î»ÈÍÑ
character string*30...call gerror ( string )write(*,*) stringÎã 3 :
gerror
¤Î´Ø¿ô¤È¤·¤Æ¤Î»ÈÍÑ (¤³¤Î¾ì¹ç¡¢string ¤Ï»ÈÍѤ·¤Þ¤»¤ó)
character gerror*30, z*30...z = gerror( )write(*,*) zierrno : ºÇ¸å¤Ë¸¡½Ð¤µ¤ì¤¿¥¨¥é¡¼ÈÖ¹æ¤Î¼èÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ ºÇ¸å¤Ë¸¡½Ð¤µ¤ì¤¿¥·¥¹¥Æ¥à¥¨¥é¡¼¤ÎÈÖ¹æ ¤³¤ÎÈÖ¹æ¤Ï¥¨¥é¡¼¤¬¼ÂºÝ¤Ëµ¯¤³¤Ã¤¿»þ¤Ë¤·¤«¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£¤³¤Î¤è¤¦¤Ê¥¨¥é¡¼¤òȯÀ¸¤µ¤»¤ë¤Û¤È¤ó¤É¤Î¥ë¡¼¥Á¥ó¤ÈÆþ½ÐÎÏʸ¤Ï¡¢¸Æ¤Ó½Ð¤·¤Î¸å¤Ç¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤·¤Þ¤¹¡£¤½¤ÎÃͤϥ¨¥é¡¼¾ò·ï¤ò°ú¤µ¯¤³¤·¤¿¸¶°ø¤ò¼¨¤¹¿®ÍêÅ٤ι⤤¥Ç¡¼¥¿¤Ç¤¹¡£
INTEGER*4 ierrno, n...n = ierrno()write(*,*) nierrno
()
perror
¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Î string ¤Ï¡¢127 ʸ»ú¤òͤ¨¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£gerror
¤Ë¤è¤êÊÖ¤µ¤ì¤ëʸ»úÎó¤ÎŤµ¤Ï¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤¹¥×¥í¥°¥é¥à¤Ë¤è¤ê·è¤á¤é¤ì¤Þ¤¹¡£f77
¤Èf95
¤Î¼Â¹Ô»þÆþ½ÐÎÏ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ØFortran ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É¡Ù¤ËµºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£putc¡¢fputc : ÏÀÍýÁõÃ֤ؤΠ1 ʸ»ú½ÐÎÏ
putc
¤ÏÏÀÍýÁõÃÖ 6 ¤Ë½ÐÎϤ·¤Þ¤¹¡£Ä̾ï¤ÏÀ©¸æÃ¼Ëö¤Ø¤Î½ÐÎϤˤʤê¤Þ¤¹¡£
fputc
¤ÏǤ°Õ¤ÎÏÀÍýÁõÃ֤˽ÐÎϤ·¤Þ¤¹¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢Ä̾ï¤Î Fortran Æþ½ÐÎϤò¥Ð¥¤¥Ñ¥¹¤·¤Æ¡¢Fortran ÏÀÍýÁõÃ֤˴ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë 1 ʸ»ú¤ò½ÐÎϤ·¤Þ¤¹¡£
Ʊ¤¸ÁõÃÖ¾å¤Ç¤Ï¡¢Ä̾ï¤Î Fortran ½ÐÎϤȤ³¤ì¤é¤Î´Ø¿ô¤Î½ÐÎϤòº®ºß¤µ¤»¤Æ»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£
putc : ÏÀÍýÁõÃÖ 6 ¤Ø¤Î½ÐÎÏ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
char CHARACTER
ÆþÎÏ ÁõÃ֤˽ÐÎϤ¹¤ëʸ»ú Ìá¤êÃÍ INTEGER*4
½ÐÎÏ status=0: Àµ¾ï status>0: ¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É
character char, s*10 / 'OK by putc' /INTEGER*4 putc, statusdo i = 1, 10char = s(i:i)status = putc( char )end dostatus = putc( '\n' )enddemo%f77 -silent tputc.f
demo%a.out
OK by putcdemo%fputc : »ØÄꤷ¤¿ÏÀÍýÁõÃ֤ؤνÐÎÏ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
lunit INTEGER*4
ÆþÎÏ ½ÐÎÏÀèÁõÃÖ char CHARACTER
ÆþÎÏ ÁõÃ֤˽ÐÎϤ¹¤ëʸ»ú Ìá¤êÃÍ INTEGER*4
½ÐÎÏ status=0: Àµ¾ï status>0: ¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É
»²¾È :
putc
(3S)¡¢intro
(2)¡¢perror
(3F)qsort¡¢qsort 64 : 1 ¼¡¸µÇÛÎó¤ÎÍ×ÁǤΥ½¡¼¥È
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
64 ¥Ó¥Ã¥È´Ä¶¤Ë¤ª¤¤¤Æ¤Ï¡¢2 ¥®¥¬¥Ð¥¤¥È¤òͤ¨¤ëÇÛÎó¤Ë¤Ï
qsort64
¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢INTEGER*8
¥Ç¡¼¥¿¤È¤·¤Æ¡¢ÇÛÎó¤ÎŤµ¤Ï len8¡¢Í×ÁÇ¥µ¥¤¥º¤Ï isize8 ¤Ëɬ¤º»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£Fortran 95 ·¿¤ÎÄê¿ô¤ò»ÈÍѤ·¤ÆINTEGER*8
Äê¿ô¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Þ¤¹¡£
compar
¤Î°ú¿ô¤Ç¤¢¤ë arg1 ¤È arg2 ¤Ï¡¢ÇÛÎó¤ÎÍ×ÁǤǤ¢¤ê¡¢¼¡¤Î·ë²Ì¤òÊÖ¤·¤Þ¤¹¡£
¥¼¥í arg1 ¤È arg2 ¤¬Åù¤·¤¤¾ì¹ç Àµ¿ô arg1 ¤Ï arg2 ¤Î¸å¤ËÃÖ¤«¤ì¤ë¤È¸«¤Ê¤µ¤ì¤ë¾ì¹ç
ran : 0 - 1 ´Ö¤ÎÍð¿ô¤ÎÀ¸À®
È¿Éü¤·¤Æ
ran
¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¶Ñ°ì¤·¤¿Ê¬ÉۤǰìÏ¢¤ÎÍð¿ô¤òÀ¸À®¤·¤Þ¤¹¡£
i INTEGER*4
ÆþÎÏ ÊÑ¿ô¤Þ¤¿¤ÏÇÛÎóÍ×ÁÇ r REAL
½ÐÎÏ ÊÑ¿ô¤Þ¤¿¤ÏÇÛÎóÍ×ÁÇ
lcrans
(3m) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
- 0.0 ¤ÏÈϰϤ˴ޤޤì¤Þ¤¹¤¬¡¢1.0 ¤Ï´Þ¤Þ¤ì¤Þ¤»¤ó¡£
- ¾è»»¹çƱ·¿¤Î°ìÈÌÍð¿ôȯÀ¸¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£
- °ìÈ̤ˡ¢
i
¤ÎÃͤϸƤӽФ·¸µ¤Î¥×¥í¥°¥é¥à¼Â¹ÔÃæ¤Ç°ìÅÙ¤À¤±ÀßÄꤵ¤ì¤Þ¤¹¡£i
¤Î½é´üÃͤÏÂ礤¤´ñ¿ô¤ÎÀ°¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£- ³¤±¤Æ
ran
¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¼¡¡¹¤ËÊ̤ÎÍð¿ô¤¬ÆÀ¤é¤ì¤Þ¤¹¡£- ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë°Û¤Ê¤ëÍð¿ô¤ÎÎó¤òÆÀ¤ë¤Ë¤Ï¡¢¼Â¹Ô¤´¤È¤Ë°ú¿ô¤ò°Û¤Ê¤ë½é´üÃͤËÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
ran
¤Ï°ú¿ô¤ò²¼µ¤Î¥¢¥ë¥´¥ê¥º¥à¤Ë½¾¤Ã¤Æ¡¢¼¡¤ÎÍð¿ô·×»»ÍѤËÃͤò³ÊǼ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ·¤Þ¤¹¡£
SEED = 6909 * SEED + 1 (MOD 2**32)SEED
¤Ï 32 ¥Ó¥Ã¥È¿ôÃͤò´Þ¤ß¡¢¾å°Ì 24 ¥Ó¥Ã¥È¤ÏÉâÆ°¾®¿ôÅÀ¤ËÊÑ´¹¤µ¤ì¡¢¤½¤ÎÃͤ¬ÊÖ¤µ¤ì¤Þ¤¹¡£rand¡¢drand¡¢irand : Íð¿ô¤òÌ᤹
rand
¤Ï 0.0 ¤«¤é 1.0 ¤ÎÈϰϤμ¿ôÃͤÎÍð¿ô¤òÊÖ¤·¤Þ¤¹¡£
drand
¤Ï 0.0 ¤«¤é 1.0 ¤ÎÈϰϤÎÇÜÀºÅÙÃͤÎÍð¿ô¤òÊÖ¤·¤Þ¤¹¡£
irand
¤Ï 0 ¤«¤é 2147483647 ¤ÎÈϰϤÎÀµ¤ÎÀ°¿ôÃͤÎÍð¿ô¤òÊÖ¤·¤Þ¤¹¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï
¡¢random
(3) ¤ò»ÈÍѤ·¤ÆÍð¿ô¤ÎÎó¤òȯÀ¸¤µ¤»¤Þ¤¹¡£¤³¤ì¤é¤Î 3 ¤Ä¤Î´Ø¿ô¤Ï¡¢Æ±¤¸ 256 ¥Ð¥¤¥È¤Î¾õÂÖÇÛÎó¤ò¶¦Í¤·¤Þ¤¹¡£3 ¤Ä¤Î´Ø¿ô¤ÎÍ£°ì¤ÎÍøÅÀ¤Ï¡¢UNIX ¥·¥¹¥Æ¥à¤ÇÉý¹¤¯ÍøÍѤǤ¤ë¤³¤È¤Ç¤¹¡£Íð¿ô¤òÀ¸À®¤¹¤ë¤µ¤é¤ËÍ¥¤ì¤¿´Ø¿ô¤È¤·¤Æ¤Ï¡¢lcrans¡¢addrans
¡¢¤ª¤è¤Óshufrans
¤¬¤¢¤ê¤Þ¤¹¡£random
(3) ¤ª¤è¤Ó¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤â»²¾È¤·¤ÆÈæ³Ó¤·¤Æ¤¯¤À¤µ¤¤¡£
integer*4 v(5), iflag/0/do i = 1, 5v(i) = irand( iflag )end dowrite(*,*) venddemo%f77 -silent trand.f
demo%a.out
2078917053 143302914 1027100827 1953210302 755253631demo%rename : ¥Õ¥¡¥¤¥ë¤Î̾¾ÎÊѹ¹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
from CHARACTER*
nÆþÎÏ ´û¸¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾ to CHARACTER
*
nÆþÎÏ ¥Õ¥¡¥¤¥ë¤Î¿·¤·¤¤¥Ñ¥¹Ì¾ Ìá¤êÃÍ INTEGER*4
½ÐÎÏ status=0: Àµ¾ï status>0: ¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É to ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢from ¤È to ¤Ï¤É¤Á¤é¤âƱ¤¸¥¿¥¤¥×¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤«¤ÄƱ¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
to ¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢ºÇ½é¤Ë¤½¤Î¥Õ¥¡¥¤¥ë¤¬ºï½ü¤µ¤ì¤Þ¤¹¡£Îã :
rename()
¡Ý
¥Õ¥¡¥¤¥ëtrename.old
¤Î̾Á°¤òtrename.new
¤ËÊѹ¹¤·¤Þ¤¹¡£
Ãí - ¥Ñ¥¹Ì¾¤ò<sys/param.h>
¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëMAXPATHLEN
¤è¤êŤ¯¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
secnds : ÉÃñ°Ì¤Î¥·¥¹¥Æ¥à»þ´Ö (¥Þ¥¤¥Ê¥¹°ú¿ô) ¤ò¼èÆÀ
t0 REAL
ÆþÎÏ Äê¿ô¡¢ÊÑ¿ô¡¢¤¢¤ë¤¤¤ÏÇÛÎóÍ×ÁÇ Ìá¤êÃÍ REAL
½ÐÎÏ ¸áÁ° 0 »þ¤«¤é¤ÎÉÿô¤«¤é t0 ¤ò°ú¤¤¤¿ÃÍ
secnds
¤«¤é¤ÎÌá¤êÃͤϡ¢0.01 Éäηå¤Þ¤ÇÀµ³Î¤Ç¤¹¡£- ÃͤϿ¿ÌëÃæ¤«¤é¤Î¥·¥¹¥Æ¥àÉÿô¤Ç¡¢¼¡¤Î¿¿ÌëÃæ¤ò±Û¤¨¤Æ¤âÀµ³Î¤Ç¤¹¡£
- Æü¤Î½ª¤ê¶á¤¯¤Î¤ï¤º¤«¤Ê´ü´Ö¤À¤±ÀºÅÙ¤¬¤¤¤¯¤é¤«¼º¤ï¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
sh : sh ¥³¥Þ¥ó¥É¤Î¹â®¼Â¹Ô
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
string CHARACTER*
n ÆþÎÏ ¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ò´Þ¤ó¤Àʸ»úÎóÌá¤êÃÍ INTEGER*4
½ÐÎÏ ¼Â¹Ô¤µ¤ì¤¿¥·¥§¥ë¤Î½ªÎ»¾õÂÖ¡£
¤³¤ÎÃͤÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ïwait
(2) ¤ò»²¾È
character*18 string / 'ls > MyOwnFile.names' /INTEGER*4 status, shstatus = sh( string )if ( status .ne. 0 ) stop 'sh: ¥¨¥é¡¼'...end´Ø¿ô
sh
¤Ï¡¢¤¢¤¿¤«¤âʸ»úÎ󤬥³¥Þ¥ó¥É¤È¤·¤Æ¥¡¼ÆþÎϤµ¤ì¤¿¤«¤Î¤è¤¦¤Ë¡¢sh
¥·¥§¥ë¤Ë string ¤òÅϤ·¤Þ¤¹¡£¸½¥×¥í¥»¥¹¤Ï¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂÔµ¡¤·¤Þ¤¹¡£
fork ¤µ¤ì¤¿¥×¥í¥»¥¹¤Ï¡¢³«¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò¤¹¤Ù¤Æ¥Õ¥é¥Ã¥·¥å¤·¤Þ¤¹¡£
- ½ÐÎÏ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ï¼Â¥Õ¥¡¥¤¥ë¤Ë¥Õ¥é¥Ã¥·¥å¤µ¤ì¤Þ¤¹¡£
- ÆþÎÏ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¤Ï¡¢¥Ý¥¤¥ó¥¿¤Î°ÌÃÖ¤¬Í½Â¬ÉÔǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
sh()
¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥ÉÂбþ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¡¢¤Þ¤¿¤ÏÊÂÎó¥×¥í¥°¥é¥à¤«¤é¤Ï¸Æ¤Ó½Ð¤µ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£»²¾È :
execve
(2)¡¢wait
(2)¡¢system
(3)
Ãí - string ¤ÎŤµ¤Ï 1,024 ʸ»ú¤òͤ¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£
signal : ¥·¥°¥Ê¥ë¤ËÂФ¹¤ëưºî¤ÎÊѹ¹
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
proc ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ëÈֹ椬À°¿ô¤Î°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹¡£
¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¡¢Ä̾ï¤Ï¥×¥í¥»¥¹¤Î½ªÎ»½èÍý¤È°Û¾ï½ªÎ»¤Ç¤¹¡£¥·¥°¥Ê¥ë½èÍý¥ë¡¼¥Á¥ó¤Ï¡¢ÆÃ¼ì¤Ê½èÍý¤ò¹Ô¤¦¤¿¤á¤ËÆÃÄê¤ÎÎã³°¤ä¥¤¥ó¥¿¥é¥×¥È¤òÊá³Í¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤ÎÌá¤êÃͤò¸å¤Ç
signal
¤ò¸Æ¤Ó½Ð¤¹»þ¤Ë»ÈÍѤ·¤Æ¡¢½èÍý¤ÎÄêµÁ¤òÊѹ¹Á°¤ËÌ᤹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥¨¥é¡¼¤¬¤Ê¤¯¤Æ¤âÉé¿ô¤ÎÌá¤êÃͤ¬ÊÖ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£Í¸ú¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤ò
signal()
¤ËÅϤ·¤Æ¡¢Ìá¤êÃͤ¬-
1 ̤Ëþ¤Ç¤¢¤Ã¤¿¾ì¹ç¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£
f77
¤Ï¥×¥í¥»¥¹¤¬µ¯Æ°¤µ¤ì¤ë¤È°ìÄê¤Î¥·¥°¥Ê¥ë¤ò¥È¥é¥Ã¥×¤¹¤ë¤¿¤á¤Î½àÈ÷¤ò¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Îf77
¤Î½èÍý¤ËÌ᤹¤¿¤á¤Ë¤Ï¡¢signal
¤òºÇ½é¤Ë¸Æ¤Ó½Ð¤·¤¿»þ¤ÎÌá¤êÃͤòÊݸ¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
f77_floatingpoint.h
¤Ç¤Ï¡¢SIGFPE_DEFAULT
¡¢SIGFPE_IGNORE
¤ª¤è¤ÓSIGFPE_ABORT
¤È¤¤¤¦ proc ÃͤòÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£55¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤ (f95
¤Ç¤Ïfloatingpoint.h
¤ò»ÈÍÑ)¡£64 ¥Ó¥Ã¥È´Ä¶¤Ç¤Ï¡¢signal ¤Ï¡¢¤½¤Î½ÐÎϤò¼õ¤±¼è¤ëÊÑ¿ô¤È¤È¤â¤Ë
INTEGER*8
¤ÈÀë¸À¤·¡¢ÊÖ¤µ¤ì¤ë²ÄǽÀ¤Î¤¢¤ë¥¢¥É¥ì¥¹¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤ë¤Î¤òËɤ°É¬Íפ¬¤¢¤ê¤Þ¤¹¡£»²¾È :
kill
(1)¡¢signal
(3)¡¢kill
(3F)¡¢¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ùsleep : °ìÄê»þ´Ö¤Î¼Â¹ÔÃæÃÇ
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
itime INTEGER*4
ÆþÎÏ ¥¹¥ê¡¼¥×¤¹¤ëÉÿô¥·¥¹¥Æ¥à»þ´ÖµÏ¿¤¬ÁƤ¤¤Î¤Ç¡¢¼ÂºÝ¤Î»þ´Ö¤Ï itime ¤è¤ê¤âºÇÂç¤Ç 1 ÉÃû¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
INTEGER*4 time / 5 /write(*,*) '³«»Ï'call sleep( time )write(*,*) '½ªÎ»'endstat¡¢lstat¡¢fstat : ¥Õ¥¡¥¤¥ë¤Î¾õÂ֤μèÆÀ
¤³¤ì¤é¤Î´Ø¿ô¤¬Ì᤹¾ðÊó¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
- ¥Ç¥Ð¥¤¥¹
- i ¥Î¡¼¥ÉÈÖ¹æ
- Êݸî
- ¥Ï¡¼¥É¥ê¥ó¥¯¤Î¿ô
- ¥æ¡¼¥¶¡¼¼±ÊÌ»Ò
- ¥°¥ë¡¼¥×¼±ÊÌ»Ò
- ¥Ç¥Ð¥¤¥¹¥¿¥¤¥×
- ¥µ¥¤¥º
- ¥¢¥¯¥»¥¹»þ¹ï
- ¹¹¿·»þ¹ï
- ¾õÂÖÊѹ¹»þ¹ï
- ºÇŬ¥Ö¥í¥Ã¥¯¥µ¥¤¥º
- ³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯
stat
¤Èlstat
¤Ï¡¢¤É¤Á¤é¤â¥Õ¥¡¥¤¥ë̾¤òÍѤ¤¤ÆÌ䤤¹ç¤ï¤»¤ò¤·¤Þ¤¹¡£fstat
¤ÏÏÀÍýÁõÃÖ¤òÍѤ¤¤ÆÌ䤤¹ç¤ï¤»¤ò¤·¤Þ¤¹¡£stat : ¥Õ¥¡¥¤¥ë̾¤Ë¤è¤ë¥Õ¥¡¥¤¥ë¤Î¾õÂ֤μèÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
fstat : ÏÀÍýÁõÃ֤ˤè¤ë¥Õ¥¡¥¤¥ë¤Î¾õÂ֤μèÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
lstat : ¥Õ¥¡¥¤¥ë̾¤Ë¤è¤ë¥Õ¥¡¥¤¥ë¤Î¾õÂ֤μèÆÀ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
ierr = lstat
( name, statb )name CHARACTER
*
nÆþÎÏ ¥Õ¥¡¥¤¥ë̾ statb INTEGER*4
½ÐÎÏ ¥Õ¥¡¥¤¥ë¾õÂ֤ξðÊ󤬳ÊǼ¤µ¤ì¤ëÍ×ÁÇ¿ô 13 ¤ÎÇÛÎó Ìá¤êÃÍ INTEGER*4
½ÐÎÏ ierr=0: Àµ¾ï ierr>0: ¥¨¥é¡¼¥³¡¼¥É
¥Õ¥¡¥¤¥ë¾õÂÖ¤ò³ÊǼ¤¹¤ëÇÛÎó¤Î¾ÜºÙ
INTEGE*4
·¿¤ÎÇÛÎó statb ¤ËÊÖ¤µ¤ì¤ë¾ðÊó¤Î°ÕÌ£¤Ï¡¢stat
(2) ¤Ç¤Î¹½Â¤ÂÎ stat ¤ÎÀâÌÀ¤ÈƱ¤¸¤Ç¤¹¡£Í½È÷¤ÎÃͤϴޤޤì¤Þ¤»¤ó¡£½ç½ø¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
»²¾È :
stat
(2)¡¢access
(3F)¡¢perror
(3F)¡¢time
(3F)
Ãí - ¥Ñ¥¹Ì¾¤ò<sys/param.h>
¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëMAXPATHLEN
¤è¤êŤ¯¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
stat64¡¢lstat64¡¢fstat64: ¥Õ¥¡¥¤¥ë¤Î¾õÂ֤μèÆÀ
stat
¡¢lstat
¡¢fstat
¤Î 64 ¥Ó¥Ã¥È ¡Ö¥í¥ó¥°¥Õ¥¡¥¤¥ë¡×(Solaris 2.6 ¤È 7) ¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¡¢Í×ÁÇ¿ô 13 ¤ÎÇÛÎóstatb
¤òINTEGER*8
¤ÇÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÅÀ¤ò½ü¤¤¤Æ¡¢Èó 64 ¥Ó¥Ã¥È¥ë¡¼¥Á¥ó¤ÈƱ¤¸¤Ç¤¹¡£system : ¥·¥¹¥Æ¥à¥³¥Þ¥ó¥É¤Î¼Â¹Ô
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
string CHARACTER*
n ÆþÎÏ ¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ò´Þ¤àʸ»úÎóÌá¤êÃÍ INTEGER*4
½ÐÎÏ ¼Â¹Ô¤µ¤ì¤¿¥·¥§¥ë¤Î½ªÎ»¾õÂÖ¡£¤³¤ÎÃͤÎÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ïwait
(2) ¤ò »²¾È
character*8 string / 'ls s*' /INTEGER*4 status, systemstatus = system( string )if ( status .ne. 0 ) stop 'system: ¥¨¥é¡¼'end´Ø¿ô
system
¤Ï¡¢¤¢¤¿¤«¤â¥³¥Þ¥ó¥É¤È¤·¤Æ¥¡¼ÆþÎϤµ¤ì¤¿¤«¤Î¤è¤¦¤Ë¡¢¥æ¡¼¥¶¡¼¤Î¥·¥§¥ë¤Ëʸ»úÎó string ¤òÅϤ·¤Þ¤¹¡£
Ãí - string ¤ÎŤµ¤Ï 1,024 ʸ»ú¤òͤ¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£
system
¤¬´Ä¶ÊÑ¿ôSHELL
¤ò¸«¤Ä¤±¤¿¾ì¹ç¡¢System
¤Ï¥³¥Þ¥ó¥É¥¤¥ó¥¿¥×¥ê¥¿ (¥·¥§¥ë) ¤È¤·¤ÆSHELL
¤ÎÃͤò»ÈÍѤ·¡¢¤½¤ì°Ê³°¤Ïsh
(l) ¤ò»ÈÍѤ·¤Þ¤¹¡£¸½¥×¥í¥»¥¹¤Ï¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂÔµ¡¤·¤Þ¤¹¡£
Îò»ËŪ¤Ë¤Ï¡¢
cc
¤Èf77
¤Ï¤½¤ì¤¾¤ì°Û¤Ê¤Ã¤¿Á°Äó¤ÇȯŸ¤·¤Æ¤¤Þ¤·¤¿¡£
cc
¤¬system
¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¡¢¥·¥§¥ë¤È¤·¤ÆÉ¬¤º Bourne ¥·¥§¥ë¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£f77
¤¬system
¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¡¢¤É¤Î¥·¥§¥ë¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¤Ï´Ä¶ÊÑ¿ôSHELL
¤Ë¤è¤ê·è¤Þ¤ê¤Þ¤¹¡£
system
´Ø¿ô¤Ï³«¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò¤¹¤Ù¤Æ¥Õ¥é¥Ã¥·¥å¤·¤Þ¤¹¡£
- ½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë´Ø¤·¤Æ¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ï¼Â¥Õ¥¡¥¤¥ë¤Ë¥Õ¥é¥Ã¥·¥å¤µ¤ì¤Þ¤¹¡£
- ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë´Ø¤·¤Æ¤Ï¡¢¥Ý¥¤¥ó¥¿¤Î°ÌÃÖ¤¬Í½Â¬ÉÔǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
»²¾È :
execve
(2)¡¢wait
(2)¡¢system
(3)
sysytem()
¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥ÉÂбþ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¡¢¤Þ¤¿¤ÏÊÂÎó¥×¥í¥°¥é¥à¤«¤é¤Ï¸Æ¤Ó½Ð¤µ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£time¡¢ctime¡¢ltime¡¢gmtime : ¥·¥¹¥Æ¥à»þ´Ö¤Î¼èÆÀ
¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï°Ê²¼¤Î´Ø¿ô¤ò¼Â¹Ô¤·¤Þ¤¹¡£
ctime
¥·¥¹¥Æ¥à»þ´Ö¤ò ASCII ʸ»úÎó¤ËÊÑ´¹¤¹¤ë ltime
¥·¥¹¥Æ¥à»þ´Ö¤ò¸½ÃÏ»þ´Ö¤Î·î¡¢Æü¤Ê¤É¤Ëʬ²ò¤¹¤ë gmtime
¥·¥¹¥Æ¥à»þ´Ö¤ò GMT ¤Î·î¡¢Æü¤Ê¤É¤Ëʬ²ò¤¹¤ë time : ¥·¥¹¥Æ¥à»þ´Ö¤Î¼èÆÀ
time()
¤Ë¤Ï¡¢É¸½à¥Ð¡¼¥¸¥ç¥ó¤È VMS ¥Ð¡¼¥¸¥ç¥ó¤Î 2 ¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£f77
¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó-lV77
¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï VMS ¥Ð¡¼¥¸¥ç¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ïɸ½à¥Ð¡¼¥¸¥ç¥ó¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£(¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ÎVMS ¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢f77
¤Ç¤Ï-lv77
¥é¥¤¥Ö¥é¥ê¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È»È¤¨¤Þ¤¹¤¬¡¢f95
¤Ç¤Ï»ÈÍѤǤ¤Þ¤»¤ó¡£)ɸ½à´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ìá¤êÃÍ INTEGER*4
½ÐÎÏ 0:0:0 GMT 1970/1/1 ¤òµ¯ÅÀ¤È¤·¤¿Éÿô INTEGER*8
½ÐÎÏ 64 ¥Ó¥Ã¥È´Ä¶¤Ç¤Ï¡¢ time
¤ÏINTEGER*8
¤ÎÃͤòÌ᤹¡£´Ø¿ô
time
( )
¤Ï¡¢¥°¥ê¥Ë¥Ã¥¸»þ´Ö¤Ç 1970 ǯ 1 ·î 1 Æü 00 »þ 00 ʬ 00 É䫤é¤Î»þ´Ö¤òÉÿô¤Ç¼¨¤¹À°¿ô¤òÊÖ¤·¤Þ¤¹¡£¤³¤ì¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à»þ·×¤ÎÃͤǤ¹¡£Îã :
time()
¡Ý
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ËÉÕ°¤¹¤ëɸ½à¥Ð¡¼¥¸¥ç¥ó
INTEGER*4 n, timen = time()write(*,*) '1970/1/1 0 »þ GMT¡¡¤«¤é¤ÎÉÿô¡¡= ', nenddemo%f77 -silent ttime.f
demo%a.out
1970/1/1 0 »þ GMT¡¡¤«¤é¤ÎÉÿô¡¡=¡¡913240205demo%
time
¤Î VMS ¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¸½ºß¤Î¥·¥¹¥Æ¥à»þ´Ö¤òʸ»úÎó¤È¤·¤Æ¼èÆÀ¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó¤Ç¤¹¡£VMS ¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
t CHARACTER*8
½ÐÎÏ hh:mm:ss ·Á¼°¤Î»þ´Ö hh¡¢mm¡¢ss ¤Ï 2 ·å¤Î¿ô»ú
hh ¤Ï»þ mm ¤Ïʬ ss ¤ÏÉÃÎã :
time(t)
¡¢VMS ¥Ð¡¼¥¸¥ç¥ó¡¢ctime
¡Ý
¥·¥¹¥Æ¥à»þ´Ö¤ò ASCII ¤ËÊÑ´¹¤·¤Þ¤¹¡£
character t*8call time( t )write(*, "(' ¸½ºß¤Î»þ¹ï¤Ï¡¢ ', A8 )") tenddemo%f77 -silent ttimeV.f -lV77
demo%a.out
¸½ºß¤Î»þ¹ï¤Ï¡¢ 08:14:13demo%ctime : ¥·¥¹¥Æ¥à»þ´Ö¤Îʸ»ú¤Ø¤ÎÊÑ´¹
´Ø¿ô
ctime
¤Ï¡¢¥·¥¹¥Æ¥à»þ´Ö stime ¤òÊÑ´¹¤·¤Æ¡¢24 ʸ»ú¤Î ASCII ʸ»úÎó¤È¤·¤ÆÊÖ¤·¤Þ¤¹¡£´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
stime INTEGER*4
ÆþÎÏ time ( )
¤ÇÆÉ¤ß¼è¤Ã¤¿¥·¥¹¥Æ¥à»þ´Ö
(ɸ½à¥Ð¡¼¥¸¥ç¥ó)Ìá¤êÃÍ CHARACTER*24
½ÐÎÏ Ê¸»úÎó¤ËÊÑ´¹¤µ¤ì¤¿¥·¥¹¥Æ¥à»þ´Ö¡£ ctime
¤È string ¤ÏCHARACTER*24
¤È¤·¤Æ·¿Àë¸À¤¹¤ë°Ê²¼¤Ë
ctime
¤¬Ì᤹Ãͤνñ¼°¤ò¼¨¤·¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ctime
(3C) ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
character*24 ctime, stringINTEGER*4 n, timen = time()string = ctime( n )write(*,*) 'ctime: ', stringenddemo%f77 -silent tctime.f
demo%a.out
ctime: Wed Dec 9 13:50:05 1998demo%ltime : ¥·¥¹¥Æ¥à»þ´Ö¤Î·î¡¢Æü¤Ê¤É (¸½ÃÏ»þ´Ö) ¤Ø¤Îʬ²ò
¤³¤Î¥ë¡¼¥Á¥ó¤Ï¥·¥¹¥Æ¥à»þ´Ö¤ò¸½ÃÏ»þ´Ö¤Î·î¡¢Æü¤Ê¤É¤Ëʬ²ò¤·¤Þ¤¹¡£
¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
stime INTEGER*4
ÆþÎÏ time()
¤ÇÆÉ¤ß¼è¤Ã¤¿¥·¥¹¥Æ¥à»þ´Ö
(ɸ½à¥Ð¡¼¥¸¥ç¥ó)tarray INTEGER*4(9)
½ÐÎÏ ¸½ÃÏ»þ´Ö¤ÎÆü¡¢·î¡¢Ç¯¡¢... ¤Ëʬ²ò¤µ¤ì¤¿ ¥·¥¹¥Æ¥à»þ´Ö
tarray
¤ÎÍ×ÁǤΰÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Î¡Ögmtime : ¥·¥¹¥Æ¥à»þ´Ö¤Î·î¡¢Æü¤Ê¤É (GMT) ¤Ø¤Îʬ²ò¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
integer*4 stime, tarray(9), timestime = time()call ltime( stime, tarray )write(*,*) 'ltime: ', tarrayenddemo%f77 -silent tltime.f
demo%a.out
ltime: 25 49 10 12 7 91 1 223 1demo%gmtime : ¥·¥¹¥Æ¥à»þ´Ö¤Î·î¡¢Æü¤Ê¤É (GMT) ¤Ø¤Îʬ²ò
¤³¤Î¥ë¡¼¥Á¥ó¤Ï¥·¥¹¥Æ¥à»þ´Ö¤ò GMT ¤Î·î¡¢Æü¤Ê¤É¤Ëʬ²ò¤·¤Þ¤¹¡£
stime INTEGER*4
ÆþÎÏ time()
¤ÇÆÉ¤ß¼è¤Ã¤¿¥·¥¹¥Æ¥à»þ´Ö
(ɸ½à¥Ð¡¼¥¸¥ç¥ó)tarray INTEGER*4(9)
½ÐÎÏ GMT ¤ÎÆü¡¢·î¡¢Ç¯¡¢... ¤Ëʬ²ò¤µ¤ì¤¿
¥·¥¹¥Æ¥à»þ´Ö
integer*4 stime, tarray(9), timestime = time()call gmtime( stime, tarray )write(*,*) 'gmtime: ', tarrayenddemo%f77 -silent tgmtime.f
demo%a.out
gmtime: 12 44 19 18 5 94 6 168 0demo%
ctime
(3V) ¤«¤é¤Îtarray()
¤ÎÃÍ¡§°Ê²¼¤Ïź»ú¤ÎÃÍ¡¢Ã±°Ì¡¢ÈϰϤòɽ¤·¤Æ¤¤¤Þ¤¹
1 Éà (0 - 61) 2 ʬ (0 - 59) 3 »þ´Ö (0 - 23) 4 Æü (1 - 31) 5 ·î (0 - 11) 6 ǯ - 1900 7 ÍËÆü (ÆüÍËÆü¤Ï 0) 8 ǯ´ÖÄ̤·¤ÎÆü¿ô (0 - 365) 9 ²Æ»þ´Ö¡¢Í¸ú¤Ç¤¢¤ì¤Ð 1
¤³¤ì¤é¤ÎÃÍ¤Ï C ¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó
ctime
(3C) ¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢59 Éäòͤ¨¤ëÉÿô¤ò¥·¥¹¥Æ¥à¤¬ÊÖ¤¹Íýͳ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ctime64¡¢gmtime64¡¢ltime64¡§64 ¥Ó¥Ã¥È´Ä¶ÍѤÎ
¥·¥¹¥Æ¥à»þ´Ö¤Î¥ë¡¼¥Á¥ó¤³¤ì¤é¤Ï¡¢¥ë¡¼¥Á¥ó ctime¡¢gmtime¡¢ltime ¤ËÂбþ¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤Ç¡¢64 ¥Ó¥Ã¥È´Ä¶¤È¤Î¸ß´¹À¤òÈ÷¤¨¤ë¤¿¤á¤ËÍѰդµ¤ì¤¿¤â¤Î¤Ç¤¹¡£ctime64¡¢gmtime64¡¢ltime64 ¤Ï¡¢ÆþÎÏÊÑ¿ô stime ¤ò
INTEGER*8
¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È°Ê³°¤Ï¡¢ctime¡¢gmtime¡¢ltime ¤ÈƱ¤¸¤â¤Î¤Ç¤¹¡£¤³¤Î¥ë¡¼¥Á¥ó¤ò¡¢
INTEGER*8
¤Î stime ¤È¤È¤â¤Ë 32 ¥Ó¥Ã¥È´Ä¶¤Ç»ÈÍѤ·¤¿¾ì¹ç¡¢stime ¤ÎÃͤ¬INTEGER*4
¤ÎÈϰϤòͤ¨¤Æ¤¤¤ë¤È¡¢ctime64 ¤ÎÌá¤êÃͤϤ¹¤Ù¤Æ¥¢¥¹¥¿¥ê¥¹¥¯¤Ë¤Ê¤ê¡¢Æ±»þ¤Ë gmtime ¤È ltime ¤Î tarray ÇÛÎó¤Ë¤Ï -1 ¤¬½¼Å¶¤µ¤ì¤Þ¤¹¡£topen¡¢tclose¡¢tread¡¢...¡¢tstate :
¥Æ¡¼¥×Æþ½ÐÎÏ(FORTRAN 77 ¤Î¤ß) ¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¼§µ¤¥Æ¡¼¥×¤òÁàºî¤Ç¤¤Þ¤¹¡£
1 ¤Ä¤ÎÁõÃ֤Ǥϡ¢¤³¤ì¤é¤Î´Ø¿ô¤òɸ½à Fortran Æþ½ÐÎϤȺ®ºß¤µ¤»¤Æ»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£
ºÇ½é¤Ë
topen()
¤ò»ÈÍѤ·¤Æ¡¢»ØÄꤵ¤ì¤¿¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥Æ¡¼¥×ÏÀÍýÁõÃÖ tlu ¤ò³«¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¸å¤Ç¡¢»ØÄꤵ¤ì¤¿ tlu ¤Ë´Ø¤¹¤ë¾¤ÎÁàºî¤ò¤¹¤Ù¤Æ¹Ô¤¤¤Þ¤¹¡£
tlu ¤ÏÄ̾ï¤Î Fortran ÏÀÍýÁõÃ֤ȤϤޤ俤¯´Ø·¸¤¢¤ê¤Þ¤»¤ó¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢»ÈÍѤ¹¤ëÁ°¤Ë
INTEGER*4
·¿Àë¸Àʸ¤Ç̾Á°¤òÀë¸À¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤ÇÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£topen : ¥Ç¥Ð¥¤¥¹¤È¥Æ¡¼¥×ÏÀÍýÁõÃ֤Ȥηë¹ç
¤³¤Î´Ø¿ô¤Ï¥Æ¡¼¥×¤ò¶îư¤¹¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
perror
(3f) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£Îã :
topen()
¡Ý
1/4 ¥¤¥ó¥Á¤Î¥Æ¡¼¥×¥Õ¥¡¥¤¥ë¤ò³«¤¤Þ¤¹¡£
topen ok: 0 1 /dev/rst0tclose : ¥Õ¥¡¥¤¥ë½ªÎ»¥Þ¡¼¥¯¤ò½ñ¤¹þ¤ß¡¢¥Æ¡¼¥×¥Á¥ã¥Í¥ë¤òÊĤ¸¡¢tlu ¤òÀÚ¤êÎ¥¤¹
¤³¤Î´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
tlu INTEGER*4
ÆþÎÏ
0 ¡Á 7 ¤ÎÈϰϤΥơ¼¥×ÏÀÍýÁõÃÖ n INTEGER*4
Ìá¤êÃÍ
n=0: Àµ¾ï n<0: ¥¨¥é¡¼
Ãí°Õ -![]()
tclose()
¤ÏÁõÃ֤Υݥ¤¥ó¥¿¤Î¸½ºß°ÌÃ֤ξ¸å¤Ë¥Õ¥¡¥¤¥ë½ªÎ»¥Þ¡¼¥¯¤òÃÖ¤¡¢ÁõÃÖ¤òÊĤ¸¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢trewin()
¤Ç¥Æ¡¼¥×¤ò´¬¤Ìᤷ¤Æ¤«¤étclose()
¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¤½¤ÎÁõÃÖ¤ÎÆâÍÆ¤Ï¤¹¤Ù¤Æ¼º¤ï¤ì¤Þ¤¹¡£
Îã :
tclose()
¡Ý
³«¤¤¤Æ¤¤¤ë 1/4 ¥¤¥ó¥Á¤Î¥Æ¡¼¥×¥Õ¥¡¥¤¥ë¤òÊĤ¸¤Þ¤¹¡£
tclose ok: 0 1 /dev/rst0twrite : ¼¡¤ÎʪÍý¥ì¥³¡¼¥É¤Î¥Æ¡¼¥×¤Ø¤Î½ñ¤¹þ¤ß
¤³¤Î´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
tlu INTEGER*4
ÆþÎÏ 0 ¡Á 7 ¤ÎÈϰϤΥơ¼¥×ÏÀÍýÁõÃÖ buffer CHARACTER
ÆþÎÏ 512 ¤ÎÇÜ¿ô¤Î¥µ¥¤¥º¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ n INTEGER*4
Ìá¤êÃÍ n>0: Àµ¾ï¡£n ¤Ï½ñ¤¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô n=0: ¥Æ¡¼¥×¤Î½ª¤ï¤ê n<0: ¥¨¥é¡¼ ʪÍý¥ì¥³¡¼¥ÉŤ¬ buffer ¤Î¥µ¥¤¥º¤Ë¤Ê¤ê¤Þ¤¹¡£
Îã :
twrite()
¡Ý
2 ¤Ä¤Î¥ì¥³¡¼¥É¤«¤é¤Ê¤ë¥Õ¥¡¥¤¥ë¤ò½ñ¤¹þ¤ß¤Þ¤¹¡£
twrite ok: 512 1 /dev/rst0tread : ¥Æ¡¼¥×¤«¤é¤Î¼¡¤ÎʪÍý¥ì¥³¡¼¥É¤ÎÆÉ¤ß¼è¤ê
¤³¤Î´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
¥Æ¡¼¥×¤Î¥Ý¥¤¥ó¥¿¤¬¥Õ¥¡¥¤¥ë½ªÎ»¥Þ¡¼¥¯¤Þ¤¿¤Ï¥Æ¡¼¥×½ªÎ»¥Þ¡¼¥¯¤Î°ÌÃ֤ˤ¢¤ë¾ì¹ç¡¢
tread
¤ÏÃͤòÊÖ¤·¤Þ¤¹¤¬¡¢¥Æ¡¼¥×¤ÎÆÉ¤ß¼è¤ê¤Ï¹Ô¤¤¤Þ¤»¤ó¡£Îã
: tread()
¡Ý Á°¤ÎÎã¤Ç½ñ¤¹þ¤Þ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Î¥ì¥³¡¼¥É¤òÆÉ¤ß¼è¤ê¤Þ¤¹¡£
tread ok: 512 1 /dev/rst0abcdtrewin : ºÇ½é¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Ø¤Î¥Æ¡¼¥×¤Î
´¬¤Ìᤷ¤³¤Î´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
tlu INTEGER*4
ÆþÎÏ 0 ¡Á 7 ¤ÎÈϰϤΥơ¼¥×ÏÀÍýÁõÃÖ n INTEGER*4
Ìá¤êÃÍ n=0: Àµ¾ï n<0: ¥¨¥é¡¼ ¥Æ¡¼¥×¤Ë¥é¥Ù¥ë¤¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢´¬¤Ìᤷ¸å¤Ë¥é¥Ù¥ë¤Ï¥¹¥¥Ã¥×¤µ¤ì¤Þ¤¹¡£
Îã 1 :
trewin()
¡Ý
ŵ·¿Åª¤Ê»ÈÍÑÎã (³ºÅöÉôʬ¤Î¤ß)
Îã 2 :
trewin()
¡Ý
2 ¤Ä¤Î¥ì¥³¡¼¥É¤«¤é¤Ê¤ë¥Õ¥¡¥¤¥ë¤Ç 3 ¥ì¥³¡¼¥É¤ÎÆÉ¤ß¼è¤ê¤ò»î¤ß¡¢´¬¤Ìᤷ¤Æ¡¢1 ¥ì¥³¡¼¥É¤òÆÉ¤ß¼è¤ê¤Þ¤¹¡£
1 abcd2 wxyz3 wxyztrewin ok: 0 1 /dev/rst0abcdtskipf : ¥Õ¥¡¥¤¥ë¤È¥ì¥³¡¼¥É¤Î¥¹¥¥Ã¥×¡¢¥Õ¥¡¥¤¥ë
½ªÎ»¾õÂ֤Υꥻ¥Ã¥È¤³¤Î´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¸åÊý¤Ø¤Î¥¹¥¥Ã¥×¤Ï¹Ô¤¤¤Þ¤»¤ó¡£
tskipf
¤Ï¡¢¤Þ¤ººÇ½é¤ËÁ°Êý¤Î nf ¸Ä¤Î¥Õ¥¡¥¤¥ë½ªÎ»¥Þ¡¼¥¯¤ò¥¹¥¥Ã¥×¤·¡¢¼¡¤ËÁ°Êý¤Î nr ¸Ä¤ÎʪÍý¥ì¥³¡¼¥É¤ò¥¹¥¥Ã¥×¤·¤Þ¤¹¡£¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤¬¥Õ¥¡¥¤¥ë½ªÎ»¥Þ¡¼¥¯¤Î°ÌÃ֤ˤ¢¤ë¾ì¹ç¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤â¥¹¥¥Ã¥×¤¹¤ë¥Õ¥¡¥¤¥ë¤Î 1 ¸Ä¤È¤·¤Æ¿ô¤¨¤é¤ì¤Þ¤¹¡£tskipf
¤Ï¡¢¥Õ¥¡¥¤¥ë½ªÎ»¾õÂÖ¤ò¥ê¥»¥Ã¥È¤¹¤ë¸ú²Ì¤â¤¢¤ê¤Þ¤¹¡£¼¡¤ËÀâÌÀ¤¹¤ëtstate
¤ÈÈæ³Ó¤·¤Æ¤¯¤À¤µ¤¤¡£
tskipf()
¤ÎÎã: ŵ·¿Åª¤Ê»ÈÍÑÎã¤Î³ºÅöÉôʬ¤Î¤ß¤ò¼¨¤·¤Þ¤¹¡£4 ¸Ä¤Î¥Õ¥¡¥¤¥ë¤È 1 ¸Ä¤Î¥ì¥³¡¼¥É¤ò¥¹¥¥Ã¥×¤·¤Þ¤¹¡£
INTEGER*4 nfiles / 4 /, nrecords / 1 /, tskipf, tlu / 1 /...n = tskipf( tlu, nfiles, nrecords )IF ( n .LT. 0 ) STOP "tskipf: ¥¹¥¥Ã¥×¤Ç¤¤Þ¤»¤ó"...tstate : ¥Æ¡¼¥×Æþ½ÐÎÏ¥Á¥ã¥Í¥ë¤ÎÏÀÍý¾õÂÖ¤ÎÆÉ¤ß¼è¤ê
¤³¤Î´Ø¿ô¤Ï¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
st
(4s) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£eoff ¤¬¿¿¤Ç¤¢¤ë´Ö¤Ï tlu ¤«¤é¤ÎÆÉ¤ß¼è¤ê¤Ï¤Ç¤¤Þ¤»¤ó¡£
tskipf()
¤ò»ÈÍѤ·¤Æ¥Õ¥¡¥¤¥ë 1 ¤È¥ì¥³¡¼¥É 0 ¤ò¥¹¥¥Ã¥×¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë½ªÎ»¾õÂ֥ե饰¤òµ¶¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
n = tskipf( tlu, 1, 0).¤³¤Î¤è¤¦¤Ë¤¹¤ë¤È¡¢¸å³¤ÎÀµ¤·¤¤¥ì¥³¡¼¥É¤òÆÉ¤ß¼è¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥Æ¡¼¥×¤Î½ª¤ï¤ê (EOT) ¤Ï¶õ¤Î¥Õ¥¡¥¤¥ë¤Ë¤è¤ê¼¨¤µ¤ì¡¢¤·¤Ð¤·¤ÐÆó½Å¤Î EOF ¥Þ¡¼¥¯¤È¤·¤ÆÉ½¤µ¤ì¤Þ¤¹¡£EOT ¤è¤ê¸å¤òÆÉ¤à¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¤¬¡¢EOT ¤è¤ê¸å¤Ë½ñ¤¯¤³¤È¤Ï¤Ç¤¤Þ¤¹¡£
Îã : 2 ¤Ä¤Î¥ì¥³¡¼¥É¤«¤é¤Ê¤ë¥Õ¥¡¥¤¥ë¤ò 3 ¤Ä½ñ¤¹þ¤ß¤Þ¤¹¡£
¼¡¤ÎÎã¤Ï
¡¢tstate()
¤ò»ÈÍѤ·¤Æ EOF ¤ò¥È¥é¥Ã¥×¤·¤Ê¤¬¤é¡¢¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò½ñ¤¹þ¤ó¤Ç¤¤¤Þ¤¹¡£Îã : Á°¤ÎÎã¤Ç½ñ¤¹þ¤ó¤À 3 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¤¹¤Ù¤Æ¤Î¥ì¥³¡¼¥É¤òÆÉ¤ß¼è¤ë¥ë¡¼¥×¤ÎÃæ¤Ç
tstate()
¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£
EOF ¤È EOT ¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
- ¥Æ¡¼¥×¤Î¥Ý¥¤¥ó¥¿¤¬ EOF ¤Þ¤¿¤Ï EOT ¤Î°ÌÃ֤ˤ¢¤ë¾ì¹ç
tread()
¤Ï²¿¤â¤»¤º¤ËÌá¤ê¤Þ¤¹¡£¥Æ¡¼¥×¤ÎÆÉ¤ß¼è¤ê¤Ï¹Ô¤¤¤Þ¤»¤ó¡£tskipf(tlu,1,0)
¤¬À®¸ù¤¹¤ë¤È¡¢EOF ¾õÂ֥ե饰¤òµ¶¤Ë¥ê¥»¥Ã¥È¤·¤ÆÉüµ¢¤·¤Þ¤¹¤¬¡¢¥Æ¡¼¥×¤Î¥Ý¥¤¥ó¥¿¤ò¿Ê¤á¤Þ¤»¤ó¡£twrite()
¤¬À®¸ù¤¹¤ë¤È¡¢
EOF ¤È EOT ¾õÂ֥ե饰¤òµ¶¤Ë¥ê¥»¥Ã¥È¤·¤Þ¤¹¡£tclose()
¤¬À®¸ù¤¹¤ë¤È¡¢¤¹¤Ù¤Æ¤Î¥Õ¥é¥°¤òµ¶¤Ë¥ê¥»¥Ã¥È¤·¤Þ¤¹¡£tclose()
¤Ï¼¡¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤ÎÀÚ¤ê¼Î¤Æ¤ò¹Ô¤¤¤Þ¤¹¡£
tclose()
¤ÏÁõÃ֤Υݥ¤¥ó¥¿¤Î¸½ºß°ÌÃ֤ξ¸å¤Ë EOF ¥Þ¡¼¥¯¤òÃÖ¤¡¢ÁõÃÖ¤òÊĤ¸¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢trewin()
¤Ç¥Æ¡¼¥×¤ò´¬¤Ìᤷ¤Æ¤«¤étclose()
¤Ë¤è¤êÁõÃÖ¤òÊĤ¸¤¿¾ì¹ç¡¢ÆâÍÆ¤Ï¤¹¤Ù¤Æ¼º¤ï¤ì¤Þ¤¹¡£tclose()
¤Î¤³¤Îưºî¤Ï Berkeley ¥³¡¼¥É¤«¤é°ú¤·Ñ¤¬¤ì¤¿¤â¤Î¤Ç¤¹¡£»²¾È :
ioctl
(2)¡¢mtio
(4s)¡¢perror
(3f)¡¢read
(2)¡¢st
(4s)¡¢write
(2)ttynam¡¢isatty : üËö¥Ý¡¼¥È¤Î̾Á°¤ÎÆÉ¤ß¼è¤ê
ttynam
¤Èisatty
¤Ï¡¢Ã¼Ëö¥Ý¡¼¥È̾¤Ë´Ø¤¹¤ë½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ttynam : üËö¥Ý¡¼¥È¤Î̾Á°¤ÎÆÉ¤ß¼è¤ê
´Ø¿ô
ttynam
¤ÏÏÀÍýÁõÃÖlunit
¤Ë·ë¹ç¤µ¤ì¤Æ¤¤¤ëüËö¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥¹Ì¾¤Ë¶õÇò¤òµÍ¤á¤ÆÊÖ¤·¤Þ¤¹¡£´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
isatty : ÁõÃÖ¤¬Ã¼Ëö¤Ç¤¢¤ë¤«¤É¤¦¤«¤Î³Îǧ
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
lunit INTEGER*4
ÆþÎÏ ÏÀÍýÁõÃÖ Ìá¤êÃÍ LOGICAL
½ÐÎÏ terminal = ¿¿: üËö¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë terminal = µ¶: üËö¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤Ê¤¤ Îã : lunit ¤¬ tty ¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£
character*12 name, ttynamINTEGER*4 lunit /5/logical isatty, terminalterminal = isatty( lunit )name = ttynam( lunit )write(*,*) 'üËö = ', terminal, ', ̾Á° = "', name, '"'end½ÐÎϤϼ¡¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
üËö = T, ̾Á° = "/dev/ttyp1 "unlink : ¥Õ¥¡¥¤¥ë¤Îºï½ü
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
patnam CHARACTER
*
n
ÆþÎÏ ¥Õ¥¡¥¤¥ë̾ Ìá¤êÃÍ INTEGER*4
½ÐÎÏ n=0: Àµ¾ï n>0: ¥¨¥é¡¼ ´Ø¿ô
unlink
¤Ï¡¢¥Ñ¥¹Ì¾ patnam ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£¤³¤ì¤¬¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëºÇ¸å¤Î¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï¤¹¤Ù¤Æ¼º¤ï¤ì¤Þ¤¹¡£
Îã :
unlink()
¡Ý
tunlink.data
¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£
call unlink( 'tunlink.data' )enddemo%f77 -silent tunlink.f
demo%ls tunl*
tunlink.f tunlink.datademo%a.out
demo%ls tunl*
tunlink.fdemo%»²¾È :
unlink
(2)¡¢link
(3F)¡¢perror
(3F)
Ãí - ¥Ñ¥¹Ì¾¤ò<sys/param.h>
¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëMAXPATHLEN
¤è¤êŤ¯¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
wait : ¥×¥í¥»¥¹½ªÎ»¤ÎÂÔµ¡
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
status INTEGER*4
½ÐÎÏ »Ò¥×¥í¥»¥¹¤Î½ªÎ»¾õÂÖ Ìá¤êÃÍ INTEGER*4
½ÐÎÏ n>0: »Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¼±ÊÌ»Ò n<0: n ¤Ï (¥·¥¹¥Æ¥à¥¨¥é¡¼¥³¡¼¥É) wait
(2) ¤ò»²¾È
wait
¤Ï¡¢¥·¥°¥Ê¥ë¤ò¼õ¿®¤¹¤ë¤«¡¢¤Þ¤¿¤Ï¤½¤Î»Ò¥×¥í¥»¥¹¤Î 1 ¤Ä¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤òÊÝα¤Ë¤·¤Þ¤¹¡£ºÇ¸å¤Îwait
¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¤Ç¡¢»Ò¥×¥í¥»¥¹¤Î¤É¤ì¤«¤¬½ªÎ»¤·¤¿¾ì¹ç¡¢wait
¤Ï¤¿¤À¤Á¤ËÌá¤ê¤Þ¤¹¡£»Ò¥×¥í¥»¥¹¤¬¤Ê¤¤¾ì¹ç¡¢wait
¤Ï¥¨¥é¡¼¥³¡¼¥É¤òȼ¤Ã¤Æ¤¿¤À¤Á¤ËÌá¤ê¤Þ¤¹¡£Îã :
wait()
¤ò»ÈÍѤ·¤¿¥³¡¼¥ÉÉôʬ
INTEGER*4 n, status, wait...n = wait( status )if ( n .lt. 0 ) stop 'wait: ¥¨¥é¡¼'...end
¥µ¥ó¡¦¥Þ¥¤¥¯¥í¥·¥¹¥Æ¥à¥º³ô¼°²ñ¼Ò Copyright information. All rights reserved. |
¥Û¡¼¥à | Ìܼ¡ | Á°¥Ú¡¼¥¸¤Ø | ¼¡¥Ú¡¼¥¸¤Ø | º÷°ú |