prctl

Autres langues

Langue: ja

Version: 2006-08-30 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

̾Á°

prctl - ¥×¥í¥»¥¹¤ÎÁàºî¤ò¹Ô¤Ê¤¦

½ñ¼°


#include <sys/prctl.h>



int prctl(int option, unsigned long arg2, unsigned long arg3,

          unsigned long arg4, unsigned long arg5);

ÀâÌÀ

prctl() ¤ÎÆ°ºî¤ÏºÇ½é¤Î°ú¤­¿ô¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë (¤³¤ÎÃÍ¤Ï <linux/prctl.h> ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë)¡£ »Ä¤ê¤Î¥Ñ¥é¥á¡¼¥¿¤ÏºÇ½é¤Î°ú¤­¿ô¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¡£ °ìÈÖÌܤΰú¤­¿ô¤È¤·¤Æ°Ê²¼¤Î¤â¤Î¤ò»ØÄê¤Ç¤­¤ë:
PR_SET_PDEATHSIG
(Linux 2.1.57 °Ê¹ß) ¿Æ¥×¥í¥»¥¹»àË´¥·¥°¥Ê¥ë (parent process death signal) ¤ò arg2 ¤ËÀßÄꤹ¤ë (ÀßÄê¤Ç¤­¤ë¥·¥°¥Ê¥ëÃͤÎÈÏ°Ï¤Ï 1..maxsig ¤Ç¤¢¤ê¡¢0 ¤ÏÄÌÃΤβò½ü¤Ç¤¢¤ë)¡£ ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹¤¬»à¤ó¤ÀºÝ¤Ë¡¢¤³¤³¤ÇÀßÄꤷ¤¿Ãͤ¬ ¥·¥°¥Ê¥ë¤È¤·¤ÆÄÌÃΤµ¤ì¤ë¡£¤³¤ÎÃÍ¤Ï fork(2) »þ¤Ë²ò½ü¤µ¤ì¤ë¡£
PR_GET_PDEATHSIG
(Linux 2.3.15 °Ê¹ß) ¿Æ¥×¥í¥»¥¹»àË´¥·¥°¥Ê¥ë¤Î¸½ºß¤ÎÃͤòÆɤ߼è¤ê (int *) arg2 ¤Ë³ÊǼ¤¹¤ë¡£
PR_SET_DUMPABLE
(Linux 2.3.20 °Ê¹ß) ¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤Ç¤Ï¥³¥¢¥À¥ó¥×¤ò°ú¤­µ¯¤³¤¹¤è¤¦¤Ê¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤È¤­¤Ë¡¢ ¥³¥¢¥À¥ó¥×¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¥Õ¥é¥°¤òÀßÄꤹ¤ë (Ä̾盧¤Î¥Õ¥é¥°¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ set-user-ID ¤¢¤ë¤¤¤Ï set-group-ID ¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤¿¤ê¡¢ ¤µ¤Þ¤¶¤Þ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¤Î UID ¤ä GID ¤¬Áàºî¤µ¤ì¤¿¤È¤­¤Ë ¥¯¥ê¥¢¤µ¤ì¤ë)¡£ 2.6.12 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ arg2 ¤Ï 0 (¥×¥í¥»¥¹¤Ï¥À¥ó¥×ÉÔ²Ä) ¤¢¤ë¤¤¤Ï 1 (¥×¥í¥»¥¹¤Ï¥À¥ó¥×²Äǽ) ¤Î ¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ 2.6.13 ¤«¤é 2.6.17 ¤Þ¤Ç¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÃÍ 2 ¤âǧ¤á¤é¤ì¤Æ¤¤¤¿¡£ ¤³¤ÎÃͤò»ØÄꤹ¤ë¤È¡¢Ä̾ï¤Ï¥À¥ó¥×¤µ¤ì¤Ê¤¤¥Ð¥¤¥Ê¥ê¤¬ root ¤À¤±¤¬ Æɤ߹þ¤ß²Äǽ¤Ê·Á¤Ç¥À¥ó¥×¤µ¤ì¤¿¡£ ¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤«¤é¡¢¤³¤Îµ¡Ç½¤Ïºï½ü¤µ¤ì¤¿ (proc(5) ¤Î /proc/sys/fs/suid_dumpable ¤ÎÀâÌÀ¤â»²¾È)¡£
PR_GET_DUMPABLE
(Linux 2.3.20 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤ª¤±¤ë¥À¥ó¥×²Äǽ¥Õ¥é¥°¤Î ¸½ºß¤Î¾õÂÖ¤ò (´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£
PR_SET_KEEPCAPS
(Linux 2.2.18 °Ê¹ß) ¥×¥í¥»¥¹¤Î¡Ö»ñ³ÊÊÝ»ý¡×¥Õ¥é¥°¤òÀßÄꤹ¤ë¡£ ¤³¤Î¥Õ¥é¥°¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â UID¡¢¼Â¸ú UID¡¢Êݸ set-user-ID ¤Î¤¦¤Á¾¯¤Ê¤¯¤È¤â °ì¤Ä¤¬ 0 ¤Ç¤¢¤Ã¤¿¾õÂÖ¤«¤é¡¢¤³¤ì¤éÁ´¤Æ¤¬ 0 °Ê³°¤ËÊѹ¹¤µ¤ì¤¿¤È¤­¡¢ ¥×¥í¥»¥¹¤Î¼Â¸ú¡¦µö²Ä»ñ³Ê½¸¹ç¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¡£ (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤³¤ì¤é¤Î»ñ³Ê½¸¹ç¤Ï¥¯¥ê¥¢¤µ¤ì¤ë¡£) arg2 ¤Ï 0 (»ñ³Ê¤ò¥¯¥ê¥¢¤¹¤ë) ¤¢¤ë¤¤¤Ï 1 (»ñ³Ê¤òÊÝ»ý¤¹¤ë) ¤Î ¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
PR_GET_KEEPCAPS
(Linux 2.2.18 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤ª¤±¤ë¡Ö»ñ³ÊÊÝ»ý¡×¥Õ¥é¥°¤Î ¸½ºß¤Î¾õÂÖ¤ò (´Ø¿ô¤ÎÊÖ¤êÃͤȤ·¤Æ) ÊÖ¤¹¡£
PR_SET_TIMING
(Linux 2.6.0-test4 °Ê¹ß) (Ä̾ï¤Î¡¢ÅÁÅýŪ¤Ë»È¤ï¤ì¤Æ¤­¤¿) Åý·×Ū¤Ê¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò»ÈÍѤ¹¤ë¤«¡¢ Àµ³Î¤Ê¥¿¥¤¥à¥¹¥¿¥ó¥×¤Ë´ð¤Å¤¯¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò»ÈÍѤ¹¤ë¤«¤òÀßÄꤹ¤ë¡£ arg2 ¤Ë»ØÄê¤Ç¤­¤ëÃÍ¤Ï PR_TIMING_STATISTICAL ¤« PR_TIMING_TIMESTAMP ¤Ç¤¢¤ë¡£
PR_GET_TIMING
(Linux 2.6.0-test4 °Ê¹ß) ¸½ºß»ÈÍÑÃæ¤Î¥×¥í¥»¥¹¥¿¥¤¥ß¥ó¥°¤ò·è¤á¤ëÊýË¡¤òÊÖ¤¹¡£
PR_SET_NAME
(Linux 2.6.9 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹Ì¾¤ò arg2 ¤Ç»ØÄꤵ¤ì¤¿¤â¤Î¤ËÀßÄꤹ¤ë¡£
PR_GET_NAME
(Linux 2.6.11 °Ê¹ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹Ì¾¤ò arg2 ¤Ë³ÊǼ¤¹¤ë¡£
PR_GET_ENDIAN
(Linux 2.6.18 °Ê¹ß¡¢PowerPC ¤Î¤ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¨¥ó¥Ç¥£¥¢¥óÀßÄê (endian-ness) ¤òÊÖ¤¹¡£
PR_SET_ENDIAN
(Linux 2.6.18 °Ê¹ß¡¢PowerPC ¤Î¤ß) ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥¨¥ó¥Ç¥£¥¢¥óÀßÄê (endian-ness) ¤ò arg2 ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ »ØÄê¤Ç¤­¤ëÃÍ¤Ï PR_ENDIAN_BIG, PR_ENDIAN_LITTLE, PR_ENDIAN_PPC_LITTLE (PowerPC µ¼»÷¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó) ¤Î¤¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£
PR_SET_UNALIGN
(Linux 2.3.48 °Ê¹ß, parisc ¤È ia64 ¤Î¤ß) unaligned ¥¢¥¯¥»¥¹À©¸æ¥Ó¥Ã¥È¤ò arg2 ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ »ØÄê¤Ç¤­¤ëÃÍ¤Ï PR_UNALIGN_NOPRINT (unaligned ¤Ê¥æ¡¼¥¶¥¢¥¯¥»¥¹¤òÌÛ¤Ã¤Æ ½¤Àµ¤¹¤ë) ¤« PR_UNALIGN_SIGBUS (unaligned ¤Ê¥æ¡¼¥¶¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç SIGBUS ¤òÀ¸À®¤¹¤ë) ¤Ç¤¢¤ë¡£
PR_GET_UNALIGN
(Linux 2.3.48 °Ê¹ß, parisc ¤È ia64 ¤Î¤ß) unaligned ¥¢¥¯¥»¥¹À©¸æ¥Ó¥Ã¥È¤ÎÃͤò arg2 ¤ËÆþ¤ì¤ÆÊÖ¤¹¡£
PR_SET_FPEMU
(Linux 2.4.18 ¤ª¤è¤Ó 2.5.9 °Ê¹ß¡¢ia64 ¤Î¤ß) ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó (floating-point emulation) À©¸æ¥Ó¥Ã¥È¤ò arg2 ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ »ØÄê¤Ç¤­¤ëÃÍ¤Ï PR_FPEMU_NOPRINT (ÉâÆ°¾®¿ôÅÀÌ¿Îᥢ¥¯¥»¥¹¤òÌÛ¤Ã¤Æ ¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë) ¤« PR_FPEMU_SIGFPE (ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤»¤º¡¢ Âå¤ï¤ê¤Ë SIGFPE ¤òÁ÷¤ë) ¤Ç¤¢¤ë¡£
PR_GET_FPEMU
(Linux 2.4.18 ¤ª¤è¤Ó 2.5.9 °Ê¹ß¡¢ia64 ¤Î¤ß) ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥óÀ©¸æ¥Ó¥Ã¥È¤ÎÃͤò arg2 ¤ËÆþ¤ì¤ÆÊÖ¤¹¡£
PR_SET_FPEXC
(Linux 2.4.21 ¤ª¤è¤Ó 2.5.32 °Ê¹ß¡¢PowerPC ¤Î¤ß) ÉâÆ°¾®¿ôÅÀÎã³°¥â¡¼¥É (floating-point exception mode) ¤ò arg2 ¤Ç»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£ »ØÄê¤Ç¤­¤ë¤Î¤Ï°Ê²¼¤ÎÃͤǤ¢¤ë: PR_FP_EXC_SW_ENABLE (FPEXC ¤ÇÉâÆ°¾®¿ôÅÀÎã³°¤òÍ­¸ú¤Ë¤¹¤ë)¡¢ PR_FP_EXC_DIV (0 ½ü»»)¡¢ PR_FP_EXC_OVF (¥ª¡¼¥Ð¡¼¥Õ¥í¡¼)¡¢ PR_FP_EXC_UND (¥¢¥ó¥À¡¼¥Õ¥í¡¼)¡¢ PR_FP_EXC_RES (ÉÔÀµ³Î¤Ê·ë²Ì (inexact result))¡¢ PR_FP_EXC_INV (ÉÔÀµ¤ÊÌ¿Îá (invalid operation))¡¢ PR_FP_EXC_DISABLED (ÉâÆ°¾®¿ôÅÀÎã³°¤ò̵¸ú¤Ë¤¹¤ë)¡¢ PR_FP_EXC_NONRECOV (async non-recoverable exception mode)¡¢ PR_FP_EXC_ASYNC (async recoverable exception mode)¡¢ PR_FP_EXC_PRECISE (precise exception mode)¡£
PR_GET_FPEXC
(Linux 2.4.21 ¤ª¤è¤Ó 2.5.32 °Ê¹ß¡¢PowerPC ¤Î¤ß) ÉâÆ°¾®¿ôÅÀÎã³°¥â¡¼¥É¤ÎÃͤò arg2 ¤ËÆþ¤ì¤ÆÊÖ¤¹¡£

ÊÖ¤êÃÍ

option ¤¬ PR_GET_DUMPABLE ¤Þ¤¿¤Ï PR_GET_KEEPCAPS ¤Î¾ì¹ç¤ÏÀ®¸ù»þ¤Ë 0 ¤Þ¤¿¤Ï 1 ¤òÊÖ¤¹¡£ option ¤¬¤½¤Î¾¤Î¾ì¹ç¤ÏÀ®¸ù»þ¤Ë 0 ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EINVAL
option ¤ÎÃͤ¬Íý²ò¤Ç¤­¤Ê¤¤¡£¤Þ¤¿¤Ï option ¤¬ PR_SET_PDEATHSIG ¤Ç arg2 ¤¬ 0 ¤Ç¤â¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤â¤Ê¤¤¡£

¥Ð¡¼¥¸¥ç¥ó

prctl() ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.1.57 ¤ÇƳÆþ¤µ¤ì¤¿¡£

½àµò

¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ IRIX ¤Ë¤Ï prctl() ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤¬¤¢¤ë¤¬ (MIPS ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤ª¤¤¤Æ irix_prctl ¤È¤·¤Æ Linux 2.1.44 ¤ÇƱÍͤËƳÆþ¤µ¤ì¤¿)¡¢ ¤½¤Î¥×¥í¥È¥¿¥¤¥×¤Ï

ptrdiff_t prctl(int option, int arg2, int arg3);

¤Ç¤¢¤ë¡£¥æ¡¼¥¶¡¼Åö¤ê¤Î¥×¥í¥»¥¹ºÇÂç¿ô¤ò¼èÆÀ¤¹¤ë¥ª¥×¥·¥ç¥ó¡¢ ¥×¥í¥»¥¹¤Î»ÈÍѤǤ­¤ëºÇÂç¥×¥í¥Ã¥µ¡¼¿ô¤ò¼èÆÀ¤¹¤ë¥ª¥×¥·¥ç¥ó¡¢ ¸½ºßÆÃÄê¤Î¥×¥í¥»¥¹¤¬Ää»ß(block)¤µ¤»¤é¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë¥ª¥×¥·¥ç¥ó¡¢ ¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤ÎºÇÂçÃͤμèÆÀ¤äÀßÄê¤ò¹Ô¤Ê¤¦¥ª¥×¥·¥ç¥ó¤Ê¤É¤¬¤¢¤ë¡£

´ØÏ¢¹àÌÜ

signal(2), core(5)