Rechercher une page de manuel
brk
Langue: ja
Version: 2003-11-01 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
brk, sbrk - ¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤ÎÊѹ¹¤¹¤ë½ñ¼°
#include <unistd.h>int brk(void *end_data_segment);
void *sbrk(intptr_t increment);
ÀâÌÀ
brk() ¤Ï¡¢¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È (data segment) ¤ÎºÇ¸å¤ò end_data_segment ¤Ç»ØÄꤷ¤¿ÃͤËÀßÄꤹ¤ë¡£ ¥·¥¹¥Æ¥à¤¬½½Ê¬¤Ê¥á¥â¥ê¤ò»ý¤Á¡¢ ¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥µ¥¤¥º¤ÎºÇÂçÃͤòĶ¤¨¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¤½¤ÎÃͤÏ͸ú¤Ç¤¢¤ë¡£ (setrlimit(2) ¤ò»²¾È)¡£sbrk() ¤Ï¡¢¥×¥í¥°¥é¥à¤Î¥Ç¡¼¥¿¶õ´Ö¤ò increment ¥Ð¥¤¥È¤À¤±Áý¤ä¤¹¡£ sbrk() ¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ç¤Ï¤Ê¤¯¡¢C ¥é¥¤¥Ö¥é¥ê¤Ë¤¢¤ë¥é¥Ã¥Ñ¡¼ (wrapper) ¤Ç¤¢¤ë¡£ increment ¤ò 0 ¤Ë¤·¤Æ sbrk() ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥Ö¥ì¡¼¥¯ (break) ¾ì½ê¤òÃΤ뤳¤È¤¬¤Ç¤¤ë¡£
ÊÖ¤êÃÍ
À®¸ù¤·¤¿¾ì¹ç¡¢ brk() ¤Ï 0 ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢-1 ¤òÊÖ¤·¡¢ errno ¤Ë ENOMEM ¤òÀßÄꤹ¤ë (¤¿¤À¤·¡ÖLINUX ¤Ç¤ÎÃí°Õ¡×¤ò»²¾È¤¹¤ë¤³¤È)¡£À®¸ù¤·¤¿¾ì¹ç¡¢ sbrk() ¤Ï¿·¤·¤¤Îΰè¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢ -1 ¤òÊÖ¤·¡¢ errno ¤Ë ENOMEM ¤òÀßÄꤹ¤ë¡£
½àµò
4.3BSD, SUSv1. SUSv2 ¤Ç¤Ï¡Ö²áµî¤Î̾»Ä (LEGACY)¡×¤È°ÌÃÖÉÕ¤±¤é¤ì¤Æ¤ª¤ê¡¢ POSIX.1-2001 ¤Çºï½ü¤µ¤ì¤¿¡£brk() ¤È sbrk() ¤Ï C µ¬³Ê (C Standard) ¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ ¤Þ¤¿ POSIX.1 µ¬³Ê¤«¤é¤Ï°Õ¿ÞŪ¤Ë½ü³°¤µ¤ì¤Æ¤¤¤ë (ÃÊÍî B.1.1.1.3, B.8.3.3 »²¾È)¡£
Ãí°Õ
¤¤¤í¤¤¤í¤Ê¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢ sbrk() ¤Î°ú¤¿ô¤ËÍÍ¡¹¤Ê·¿¤¬»È¤ï¤ì¤Æ¤¤¤ë¡£ °ìÈÌŪ¤Ê¤Î¤Ï int, ssize_t, ptrdiff_t, intptr_t ¤Ç¤¢¤ë¡£Linux ¤Ç¤ÎÃí°Õ
¾å¤ÇÀâÌÀ¤·¤¿ brk() ¤ÎÊÖ¤êÃͤˤĤ¤¤Æ¤ÎÆ°ºî¤Ï¡¢ Linux ¤Î brk() ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥é¥Ã¥×¤¹¤ë glibc ¤Î´Ø¿ô¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ë¡£ (¤½¤Î¾¤Î¿¤¯¤Î¼ÂÁõ¤Ç¤â¡¢ brk() ¤ÎÊÖ¤êÃͤϤ³¤ì¤ÈƱ¤¸¤Ç¤¢¤ë¡£) ¤·¤«¤·¡¢¼ÂºÝ¤Î Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç¡¢ ¥×¥í¥°¥é¥à¤Î¿·¤·¤¤¥Ö¥ì¡¼¥¯¤òÊÖ¤¹¡£ ¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¸½ºß¤Î¥Ö¥ì¡¼¥¯¤òÊÖ¤¹ (¤è¤Ã¤Æ¡¢ brk(0) ¤È¤¤¤¦¸Æ¤Ó½Ð¤·¤Ç¸½ºß¤Î¥Ö¥ì¡¼¥¯¤ò¼èÆÀ¤Ç¤¤ë)¡£ glibc ¥é¥Ã¥Ñ¡¼´Ø¿ô¤ÏƱÍͤÎƯ¤¤ò¤·¡¢ ¾å¤ÇÀâÌÀ¤·¤¿ 0 ¤È -1 ¤È¤¤¤¦ÊÖ¤êÃͤòÊÖ¤¹¡£Linux ¤Ç¤Ï sbrk() ¤Ï brk() ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¥é¥¤¥Ö¥é¥ê´Ø¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢ °ÊÁ°¤Î¥Ö¥ì¡¼¥¯¤ÎÃͤòÊÖ¤¹¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤ËÆâÉô¤ÇÄ´À°¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£
´ØÏ¢¹àÌÜ
execve(2), getrlimit(2), malloc(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre