Rechercher une page de manuel
setbuf
Langue: ja
Version: 2001-06-09 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
̾Á°
setbuf, setbuffer, setlinebuf, setvbuf - ¥¹¥È¥ê¡¼¥à¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤ÎÁàºî½ñ¼°
#include <stdio.h>void setbuf(FILE *stream, char *buf);
void setbuffer(FILE *stream, char *buf, size_t size);
void setlinebuf(FILE *stream);
int setvbuf(FILE *stream, char *buf, int mode , size_t size);
ÀâÌÀ
¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤Ë¤Ï unbuffered, block buffered, line buffered ¤Î3¤Ä¤Î¥¿¥¤¥×¤¬ ¤¢¤ë¡£½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Î¥¿¥¤¥×¤¬ unbuffered ¤Î¾ì¹ç¡¢¥Ç¡¼¥¿¤ò½ñ¤¹þ¤à¤È¤¹¤°¤Ë½Ð ÎÏÀè¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤Þ¤ì¤ë¤«¥¿¡¼¥ß¥Ê¥ë¤Ëɽ¼¨¤µ¤ì¤ë¡£block buffered ¤Î¾ì¹ç¡¢Ê¸ »ú¤ÎÆɤ߽ñ¤¤Ï¥Ö¥í¥Ã¥¯Ã±°Ì¤Ç¤¤¤Ã¤Ú¤ó¤Ë¹Ô¤ï¤ì¤ë¡£line buffered ¤Î¾ì¹ç¡¢¿·¤·¤¤ ¹Ô¤¬½ÐÎϤµ¤ì¤ë¤«¡¢¥¿¡¼¥ß¥Ê¥ë¥Ç¥Ð¥¤¥¹¤ËÀܳ¤·¤Æ¤¤¤ë¥¹¥È¥ê¡¼¥à (Ä̾stdin) ¤« ¤é¿·¤·¤¤¹Ô¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Çʸ»ú¤¬¤¿¤¯¤ï¤¨¤é¤ì¤ë¡£¥Ö¥í¥Ã¥¯¤ò¶¯À©Åª¤Ë½ÐÎϤ¹¤ë¤Ë ¤Ï fflush(3) ´Ø¿ô¤ò»È¤¦¡£ (fclose(3) ¤ò»²¾È¤Î¤³¤È) Ä̾¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ block buffered ¤Ç¤¢¤ë¡£¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ ½é¤á¤ÆÆþ½ÐÎϽèÍý¤ò¹Ô¤¦¤È malloc(3) ¤¬¸Æ¤Ó½Ð¤µ¤ì¥Ð¥Ã¥Õ¥¡¤¬³ÍÆÀ¤µ¤ì¤ë¡£¤â¤· ¥¹¥È¥ê¡¼¥à¤¬ (Ä̾ stdout ¤¬¤½¤¦¤Ç¤¢¤ë¤è¤¦¤Ë) ¥¿¡¼¥ß¥Ê¥ë¤ò»²¾È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ï line buffered ¤È ¤Ê¤ë¡£É¸½à¥¨¥é¡¼½ÐÎÏ stderr ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¾ï¤Ë unbuffered ¤Ç¤¢¤ë¡£setvbuf() ´Ø¿ô¤Ï¡¢¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ëǤ°Õ¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¥Ð¥Ã¥Õ¥¡¤òÊѹ¹¤Ç¤¤ë¡£ ¥Ñ¥é¥á¡¼¥¿ mode ¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥Þ¥¯¥í¤Î¤¦¤Á¤¤¤º¤ì¤«¤Ç¤¢¤ë:
-
- _IONBF
- unbuffered
- _IOLBF
- line buffered
- _IOFBF
- fully buffered
unbuffered ¤Î¥Õ¥¡¥¤¥ë¤ò½ü¤¡¢ buf °ú¿ô¤Ï size ¥Ð¥¤¥È°Ê¾å¤ÎÂ礤µ¤Î¥Ð¥Ã¥Õ¥¡¤ò»Ø¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï¸½ºß¤Î ¥Ð¥Ã¥Õ¥¡¤ÎÂå¤ï¤ê¤ËÍѤ¤¤é¤ì¤ë¡£¤â¤·¡¢°ú¿ô buf ¤¬ NULL ¤Ê¤é¤Ð¡¢¥â¡¼¥É¤À¤±¤¬Êѹ¹¤µ¤ì¤ë¡£ ¿·¤·¤¤¥Ð¥Ã¥Õ¥¡¤Ï¼¡¤ËÆɤ߽ñ¤¤·¤¿ºÝ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¡£ setvbuf() ´Ø¿ô¤Ï¡¢¥¹¥È¥ê¡¼¥à¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¡¢ ¤½¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ²¿¤é¤«¤ÎÁàºî¤ò¤¹¤ëÁ°¤Ë¤Î¤ß»ÈÍѤǤ¤ë¡£
¾¤Î 3 ¤Ä¤Î´Ø¿ô¤Ï setvbuf() ¤Î¸Æ¤Ó½Ð¤·¤Ëñ½ã¤ËÃÖ¤´¹¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡£ setbuf() ´Ø¿ô¤Ï¡¢
- setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);
- setvbuf(stream, (char *) NULL, _IOLBF, 0);
ÊÖ¤êÃÍ
setvbuf() ´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£ ¼ºÇÔ¤·¤¿¾ì¹ç¤ÏǤ°Õ¤ÎÃͤòÊÖ¤¹¤³¤È¤¬¤¢¤êÆÀ¤ë¤¬¡¢ mode ¤¬ÉÔÀµ¤Ê¾ì¹ç¤Þ¤¿¤Ï¥ê¥¯¥¨¥¹¥È¤¬¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¾ì¹ç¤Ï¡¢0 °Ê³°¤òÊÖ¤¹¡£ setvbuf() ´Ø¿ô¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ï errno ¤òÀßÄꤹ¤ë¤³¤È¤â¤¢¤ë¡£ ¤½¤Î¾¤Î´Ø¿ô¤ÎÊÖ¤êÃÍ¤Ï void ¤Ç¤¢¤ë¡£½àµò
setbuf() ´Ø¿ô¤ª¤è¤Ó setvbuf() ´Ø¿ô¤Ï C89 ¤È C99 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£¥Ð¥°
setbuffer() ´Ø¿ô¤ª¤è¤Ó setlinebuf() ´Ø¿ô¤Ï 4.2BSD ¤è¤êÁ°¤Î BSD ¤È¤Ï¸ß´¹À¤¬¤Ê¤¤¡£¤Þ¤¿ Linux ¤Ç¤â(¸Å¤¤¥Ð¡¼¥¸¥ç¥ó ¤Ç¤Ï)ÍøÍѤǤ¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£4.2BSD ¤ª¤è¤Ó 4.3BSD ¤Î¥·¥¹¥Æ¥à¤Ç¤Ï setbuf() ¤Ïɬ¤ºÄɲäΥХåե¡¡¼¤Î¥µ¥¤¥º¤ò»ÈÍѤ¹¤ë¤Î¤Ç¡¢¤³¤ì¤â»È¤¦¤Ù¤¤Ç¤Ê¤¤¡£ stream ¤òÊĤ¸¤ë»þ (¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ëºÝ¤Ë¤â¤³¤ì¤Ïµ¯¤¤ë) ¤Ë¤Ï¡¢ buf ¤È ¤½¤Î»Ø¤·¼¨¤¹¶õ´Ö¤È¤¬Â¸ºß¤·¤Æ¤¤¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ê»È¤¤Êý¤Ïµö¤µ¤ì¤Ê¤¤:#include <stdio.h> int main(void) { char buf[BUFSIZ]; setbuf(stdin, buf); printf("Hello, world!\n"); return 0; }
´ØÏ¢¹àÌÜ
fclose(3), fflush(3), fopen(3), fread(3), malloc(3), printf(3), puts(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre