|
|||||||
|
|
FOPENSection: Linux Programmer's Manual (3)Updated: 13 December 1995 Index Return to Main Contents ̾Á°fopen, fdopen, freopen - ¥¹¥È¥ê¡¼¥à¤ò³«¤¯´Ø¿ô½ñ¼°#include <stdio.h>
FILE *fopen (const char *path, const char *mode);
ÀâÌÀfopen ´Ø¿ô¤Ï¡¢ path ¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤ò³«¤¡¢¥¹¥È¥ê¡¼¥à¤ËÏ¢·ë¤¹¤ë¡£°ú¿ô mode ¤Ï¡¢°Ê²¼¤Ë³¤¯Ê¸»ú¤Î¤Ò¤È¤Ä¤«¤é»Ï¤Þ¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ (ÄɲäÎʸ»ú¤¬¤³¤Îʸ»ú¤Î¸å¤Ë³¤¯¤³¤È¤â¤Ç¤¤ë):
mode ʸ»úÎó¤Ë¤Ïʸ»ú ``b'' ¤òÄɲûØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤³¤ì¤Ï¾å½Ò¤Î¤¦¤Á¤Î 2ʸ»ú¤«¤é¤Ê¤ëʸ»úÎó¤Ç¤Ï¡¢ºÇ¸å¤Îʸ»ú¤È¤·¤Æ¤â¡¢¤¢¤ë¤¤¤Ï2¤Ä¤Îʸ»ú¤Î´Ö¤Ë¤Ç¤â »ØÄê¤Ç¤¤ë¡£ ¤³¤ì¤Ï ANSI X3.159-1989 (``ANSI C'') ¤È¤Î¸ß´¹À¤Î¤¿¤á¤À¤±¤ËÍѰդµ¤ì¤¿ ¤â¤Î¤Ç¤¢¤ê¡¢´Ø¿ô¤Î¼Â¹Ô¤ËÂФ·¤Æ¤Ï¤¤¤«¤Ê¤ë±Æ¶Á¤â»ý¤¿¤Ê¤¤¡£ ¤¹¤Ê¤ï¤Á¡¢Linux ¤ò´Þ¤àÁ´¤Æ¤Î POSIX ½àµò¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ ¤³¤Î ``b'' ¤Ï̵»ë¤µ¤ì¤ë¡£ (¤½¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥Æ¥¥¹¥È¥Õ¥¡¥¤¥ë¤È¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤òÊÌ¡¹¤Ë°·¤¦¤â¤Î¤â¤¢¤ë¤Î¤Ç¡¢ ¤â¤·¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ÎÆþ½ÐÎϤò¹Ô¤¤¡¢ ¤½¤Î¥×¥í¥°¥é¥à¤¬Èó UNIX ´Ä¶¤Ø°Ü¿¢¤µ¤ì¤ë¤Èͽ¬¤¹¤ë¤Ê¤é¡¢ ``b''¤òÉÕ¤±¤Æ¤ª¤¯¤Î¤ÏÎɤ¤¹Í¤¨¤Ç¤¢¤ë) ¤¹¤Ù¤Æ¤ÎÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¡¢ S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH (0666) ¤Î¥â¡¼¥É¤ò ¤½¤Î¥×¥í¥»¥¹¤Î umask Ãͤˤè¤Ã¤Æ½¤Àµ¤·¤¿¥â¡¼¥É¤ò»ý¤Ä ( umask(2) ¤ò¸«¤è) read/write¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¤ÏǤ°Õ¤Î½ç½ø¤ÇÆÉ¤ß½ñ¤¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¡£ ¤¿¤À¤· ANSI C ¤Ç¤Ï¡¢ (ÆþÎÏÁàºî¤¬¥Õ¥¡¥¤¥ë¤ÎËöÈø¤ËÅþ㤷¤¿¾ì¹ç¤ò½ü¤¤¤Æ) ½ÐÎÏ¤ÈÆþÎϤδ֤ˤϥե¡¥¤¥ë¤Î°ÌÃÖ·è¤á´Ø¿ô¤ò ¶´¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤µ¤ì¤¿¤¤¡£ (¤³¤Î¾ò·ï¤òËþ¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ÆÉ¤ß¹þ¤ßÁàºî¤Ï¡¢ ºÇ¸å¤Ë½ñ¤¹þ¤Þ¤ì¤¿¤â¤Î¤Ç¤Ê¤¯¡¢°ÊÁ°¤Ë½ñ¤¹þ¤Þ¤ì¤¿ ÃͤòÊÖ¤¹¤³¤È¤òµö¤µ¤ì¤Æ¤¤¤ë¡£) ¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Î¤è¤¦¤Ê¥¹¥È¥ê¡¼¥à¤Ç¤ÎÆÉ¤ß½ñ¤Áàºî¤Î´Ö¤Ë¤Ï fseek ¤Þ¤¿¤Ï fgetpos Áàºî¤ò¶´¤ó¤Ç¤ª¤¯¤ÈÎɤ¤¤À¤í¤¦ (Linux ¤Ç¤ÏËÜÅö¤ËɬÍפȤʤ뤳¤È¤â¤È¤¤É¤¤¢¤ë)¡£ ¤³¤ÎÁàºî¤Ï¸«¤«¤±¾å²¿¤â¤·¤Ê¤¤Áàºî (no-op) ¤Ç¤âÎɤ¤ (Î㤨¤Ð fseek(..., 0L, SEEK_CUR) ¤ò ¤½¤ÎÉû¼¡Åª¸ú²Ì¤Ç¤¢¤ë¥·¥ó¥¯¥í¥Ê¥¤¥º¤Î¤¿¤á¤À¤±¤Ë¸Æ¤Ù¤ÐÎɤ¤)¡£ fdopen ´Ø¿ô¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (file descriptor) fildes ¤Ë¥¹¥È¥ê¡¼¥à¤ò·ë¤Ó¤Ä¤±¤ë¡£ ¥¹¥È¥ê¡¼¥à¤Î mode ("r", "r+", "w", "w+", "a", "a+" ¤Î¤¤¤º¤ì¤«) ¤Ï ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥â¡¼¥É¤È¸ß´¹¤Î¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¿·¤·¤¤¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë°ÌÃÖɽ¼¨»Ò (file position indicator) ¤Ï fildes ¤Ë°¤·¤Æ¤¤¤ëÃͤËÀßÄꤵ¤ì¤ë¡£ error ¤È end-of-file ¤Î³ÆÉ½¼¨»Ò (indicator) ¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£ "w" ¤ª¤è¤Ó "w+" ¥â¡¼¥É¤Ç¤Î¥Õ¥¡¥¤¥ë¤ÎÀÚ¤êµÍ¤á¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ÎÊ£À½(dup)¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¤Î¤Ç fdopen ¤ÇºîÀ®¤µ¤ì¤¿¥¹¥È¥ê¡¼¥à¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤â¥¯¥í¡¼¥º¤µ¤ì¤ë¡£ ¶¦Í¥á¥â¥ê¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø fdopen ¤ò¹Ô¤Ã¤¿¤È¤¤Î·ë²Ì¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ freopen ´Ø¿ô¤Ï path ¤Ç̾Á°¤¬»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò³«¤¡¢ stream ¤Ç»ØÄꤵ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ë¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤òÏ¢·ë¤¹¤ë¡£ ¤â¤È¤Î¥¹¥È¥ê¡¼¥à¤Ï(¤â¤·Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï)ÊĤ¸¤é¤ì¤ë¡£ mode °ú¿ô¤Ï fopen ´Ø¿ô¤ÈƱ¤¸·Á¤Ç»È¤ï¤ì¤ë¡£ freopen ´Ø¿ô¤Î¼ç¤ÊÍÑÅӤϡ¢É¸½à¥Æ¥¥¹¥È¥¹¥È¥ê¡¼¥à (stderr¡¢stdin¡¢¤Þ¤¿¤Ïstdout) ¤ËÏ¢·ë¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£ ÊÖ¤êÃÍfopen, fdopen, freopen ¤ÏÀ®¸ù¤¹¤ë¤È FILE ·¿¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ ¼ºÇÔ¤¹¤ë¤È NULL ¤¬ÊÖ¤µ¤ì¡¢Âç°èÊÑ¿ô errno ¤¬¥¨¥é¡¼¤ò¼¨¤¹Ãͤ˥»¥Ã¥È¤µ¤ì¤ë¡£¥¨¥é¡¼
fopen, fdopen, freopen ´Ø¿ô¤Ï malloc(3) ¥ë¡¼¥Á¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ ¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë errno ¤ò¥»¥Ã¥È¤¹¤ë¡£ fopen ´Ø¿ô¤Ï open(2) ¥ë¡¼¥Á¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ ¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë errno ¤ò¥»¥Ã¥È¤¹¤ë¡£ fdopen ´Ø¿ô¤Ï fcntl(2) ¥ë¡¼¥Á¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ ¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë errno ¤ò¥»¥Ã¥È¤¹¤ë¡£ freopen ´Ø¿ô¤Ï open(2), fclose(3), fflush(3) ³Æ¥ë¡¼¥Á¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤â¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ê¡¢ ¤½¤Î»þ¤ÏÂбþ¤¹¤ëÃÍ¤Ë errno ¤ò¥»¥Ã¥È¤¹¤ë¡£ ½àµòfopen ´Ø¿ô¤È freopen ´Ø¿ô¤Ï ANSI X3.159-1989 (``ANSI C'')¤Ë½àµò¤·¤Æ¤¤¤ë¡£ fdopen ´Ø¿ô¤Ï IEEE Std1003.1-1988 (``POSIX.1'')¤Ë½àµò¤·¤Æ¤¤¤ë¡£´ØÏ¢¹àÌÜopen(2), fclose(3), fileno(3)
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man3". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |