| 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,lstat64time64,¥·¥¹¥Æ¥à»þ´Ö¤ò¼èÆÀ¤·¡¢Ê¸»ú¤ËÊÑ´¹¤¹¤ë¤« 97 ¥Ú¡¼¥¸ ctime64,·î¡¢Æü¤Ê¤É¤Ëʬ²ò¤¹¤ë gmtine64,ltime64qsort64ÇÛÎó¤ÎÍ×ÁǤò¥½¡¼¥È¤¹¤ë 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*4values¤ËÊÖ¤µ¤ì¤ë 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*24string =fdate()fdate¤ò´Ø¿ô¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤¹¥ë¡¼¥Á¥ó¤Ïfdate¤Î·¿¤ÈŤµ¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ëÌá¤êÃÍ CHARACTER*24½ÐÎÏ Îã 1 : ¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¤Î»ÈÍÑ
character*24stringcall fdate( string )write(*,*) stringend¾åµ¤ÎÎã¤Î½ÐÎϤϼ¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
Wed Aug 3 15:30:23 1994Îã 2 : ´Ø¿ô¤È¤·¤Æ¤Î»ÈÍÑ¡£½ÐÎϤϾ嵤ÎÎã¤ÈƱ¤¸¡£
character*24fdatewrite(*,*) fdate()end»²¾È :
ctime(3)¡¢time(3F)¡¢idate(3F)flush : ÏÀÍýÁõÃ֤ؤνÐÎϤΥեé¥Ã¥·¥å
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
lunit INTEGER*4Input ÏÀÍýÁõÃÖ Return value INTEGER*4Output 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 : ÏÀÍýÁõÃÖ¾å¤Î¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤ÎºÆ°ÌÃÖÉÕ¤±
´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Ãí - ½çÊÔÀ®¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢fseek64¤Ë³¤¯¸Æ¤Ó½Ð¤·¤Î¸å¤Î½ÐÎÏÁàºî (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 ftello64n =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.fINTEGER*4 iarray(3)call idate( iarray )write(*, "(' ÆüÉÕ¤Ï: ',3i5)" ) iarrayenddemo%f77 -silent tidate.fdemo%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_typeIEEE ´Ý¤áÊý¸þ¥â¡¼¥É¤Î·¿¡£Îóµó¤Î½ç½ø¤Ï¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ê°Û¤Ê¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ SIGFPE ½èÍý
IEEE Îã³°½èÍý
IEEE ¥¯¥é¥¹Ê¬Îà
fp_class_typeIEEE ÉâÆ°¾®¿ôÅÀ¤ÎÃͤȵ¹æ¤Î¥¯¥é¥¹¤ÎÊÂ¤Ó ¡Ø¿ôÃÍ·×»»¥¬¥¤¥É¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¾È :
ieee_environment(3M)¡¢f77_ieee_environment(3F)index¡¢rindex¡¢lnblnk : ÉôʬÎó¤Îº÷°ú¤Þ¤¿¤ÏŤµ
¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¼¡¤Î¤è¤¦¤Ëʸ»úÎó¤Ë¤è¤ëõº÷¤ò¹Ô¤¤¤Þ¤¹¡£
rindex(a1, a2)ʸ»úÎó a1 ¤ÎÃæ¤ÇºÇ¸å¤Ë½Ð¸½¤¹¤ëʸ»úÎó a2 ¤Îº÷°ú lnblnk(a1)ʸ»úÎó a1 ¤ÎÃæ¤ÎºÇ¸å¤Î¶õÇò°Ê³°¤Îʸ»ú¤Îº÷°ú
index¤Ï°Ê²¼¤Î·Á¼°¤ò¤È¤ê¤Þ¤¹¡£index : ʸ»úÎó¤ÎÃæ¤ÇºÇ½é¤Ë½Ð¸½¤¹¤ëÉôʬʸ»úÎó
index¤Ï¡¢ÁȤ߹þ¤ß´Ø¿ô¤Ç¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
a1CHARACTERÆþÎÏ Ê¸»úÎó a2CHARACTERÆþÎÏ ÉôʬÎó Ìá¤êÃÍ 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.fdemo%a.out2147483647demo%»²¾È :
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=mydatademo$FORT12=myresultsdemo$export FORT01 FORT12demo$myprogram
demo%setenv FORT01 mydatademo%setenv FORT12 myresultsdemo%myprogram¤É¤Á¤é¤ÎÊýË¡¤ò»ÈÍѤ·¤Æ¤â¡¢¾åµ¤ÎÎã¤Î
ioinit¸Æ¤Ó½Ð¤·¤«¤é¤Ï°Ê²¼¤Î·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤¹¡£
- ³«¤«¤ì¤¿ÏÀÍýÁõÃÖ 1 ¤ËÂФ·¤Æ¥Õ¥¡¥¤¥ë
mydata¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£- ³«¤«¤ì¤¿ÏÀÍýÁõÃÖ 12 ¤ËÂФ·¤Æ¥Õ¥¡¥¤¥ë
myresults¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£- ¾åµ 2 ¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¥Ý¥¤¥ó¥¿¤òÀèÆ¬¤Ë°ÌÃÖÉÕ¤±¤Þ¤¹¡£
- ½ñ¼°ÉÕ¤½ÐÎϤΠ1 ·åÌܤϽüµî¤µ¤ì¡¢¥¥ã¥ê¥Ã¥¸À©¸æ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£
- Ëä¤á¹þ¤ß¶õÇò¤È¸å³¤Î¶õÇò¤ÏÆþÎÏ»þ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
Îã :
ioinit()¡Ý ʤӤȥ³¥ó¥Ñ¥¤¥ë
sh¤Þ¤¿¤Ïcsh¤ò»ÈÍѤ·¤Æ°Ê²¼¤Î¤è¤¦¤Ë´Ä¶ÊÑ¿ô¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
demo$FORT01=tioinit.datademo$FORT12=tioinit.audemo$export FORT01 FORT12demo$ioinit()
demo%setenv FORT01 tioinit.datademo%setenv FORT12 tioinit.auioinit()
demo%a.outdemo%cat tioinit.auabc 123PDQ 789ioinit()itime : ¸½ºß¤Î»þ¹ï
itime¤Ï¡¢¸½ºß¤Î¥·¥¹¥Æ¥à»þ¹ï¤Î»þ¡¢Ê¬¡¢ÉäòÀ°¿ôÇÛÎó¤ËÆþ¤ì¤Þ¤¹¡£¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
iarray INTEGER*4½ÐÎÏ 3 Í×ÁǤÎÇÛÎó: iarray(1) = »þ iarray(2) = ʬ iarray(3) = ÉÃ
demo%cat titime.fINTEGER*4 iarray(3)call itime( iarray )write (*, "(' »þ¹ï¤Ï: ',3i5)" ) iarrayenddemo%f77 -silent titime.fdemo%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.fdemo%a.outOK 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.fdemo%a.out2078917053 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.fdemo%a.out1970/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 -lV77demo%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.fdemo%a.outctime: 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.fdemo%a.outltime: 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.fdemo%a.outgmtime: 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.fdemo%ls tunl*tunlink.f tunlink.datademo%a.outdemo%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. |
¥Û¡¼¥à | Ìܼ¡ | Á°¥Ú¡¼¥¸¤Ø | ¼¡¥Ú¡¼¥¸¤Ø | º÷°ú |