OSDN Git Service

長音記号の修正を release に反映
[linuxjm/LDP_man-pages.git] / release / man2 / getgroups.2
index 8dfd97b..a88d0ca 100644 (file)
@@ -1,7 +1,6 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -21,6 +20,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Modified Thu Oct 31 12:04:29 1996 by Eric S. Raymond <esr@thyrsus.com>
 .\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
 .\" 2008-05-03, mtk, expanded and rewrote parts of DESCRIPTION and RETURN
 .\"     VALUE, made style of page more consistent with man-pages style.
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
 .\"         all rights reserved.
 .\" Translated 1997-02-22, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
 .\" Updated 2001-02-10, Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
 .\" Updated & Modified 2004-12-30, Yuichi SATO <ysato444@yahoo.co.jp>
 .\" Updated 2008-08-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.05
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\"WORD:       group                   ¥°¥ë¡¼¥×
-.\"WORD:       access                  ¥¢¥¯¥»¥¹
-.\"WORD:       process                 ¥×¥í¥»¥¹
-.\"WORD:       super user              ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼
-.\"WORD:       supplementary group     Êä½õ¥°¥ë¡¼¥×
-.\"
-.TH GETGROUPS 2 2008-06-03 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-getgroups, setgroups \- Êä½õ¥°¥ë¡¼¥× ID ¤Î¥ê¥¹¥È¤ò¼èÆÀ/ÀßÄꤹ¤ë
-.SH ½ñ¼°
-.B #include <sys/types.h>
+.TH GETGROUPS 2 2014\-08\-19 Linux "Linux Programmer's Manual"
+.SH 名前
+getgroups, setgroups \- 補助グループ ID のリストを取得/設定する
+.SH 書式
+\fB#include <sys/types.h>\fP
 .br
-.B #include <unistd.h>
+\fB#include <unistd.h>\fP
 .sp
-.BI "int getgroups(int " size ", gid_t " list []);
+\fBint getgroups(int \fP\fIsize\fP\fB, gid_t \fP\fIlist\fP\fB[]);\fP
 .sp
-.B #include <grp.h>
+\fB#include <grp.h>\fP
 .sp
-.BI "int setgroups(size_t " size ", const gid_t *" list );
+\fBint setgroups(size_t \fP\fIsize\fP\fB, const gid_t *\fP\fIlist\fP\fB);\fP
 .sp
 .in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
-.RB ( feature_test_macros (7)
-»²¾È):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
 .in
 .sp
-.BR setgroups ():
-_BSD_SOURCE
-.SH ÀâÌÀ
+\fBsetgroups\fP(): _BSD_SOURCE
+.SH 説明
 .PP
-.BR getgroups ()
-¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× (supplementary group) ID ¤ò
-.I list
-¤ËÊÖ¤¹¡£
-.I size
-°ú¤­¿ô¤Ë¤Ï¡¢
-.I list
-¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤Ç¤­¤ëÍ×ÁǤκÇÂç¿ô¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬
-.I size
-¸Ä¤è¤ê¿¤¯¤ÎÊä½õ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¤Î¾ì¹ç¤Ë¤Ï¡¢¥¨¥é¡¼¤È¤Ê¤ë¡£
-¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤¬¡¢
-ÊÖ¤µ¤ì¤ë¥ê¥¹¥È¤Ë´Þ¤Þ¤ì¤ë¤«¤É¤¦¤«¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤
-(¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï
-.BR getegid (2)
-¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤Î·ë²Ì¤ÎÃͤòÄɲᦺï½ü¤¹¤Ù¤­¤Ç¤¢¤ë)¡£
+\fBgetgroups\fP()  は呼び出し元プロセスの補助グループ (supplementary group) ID を \fIlist\fP に返す。
+\fIsize\fP 引き数には、 \fIlist\fP により参照されるバッファーに格納できる要素の最大数を設定すべきである。 呼び出し元プロセスが
+\fIsize\fP 個より多くの補助グループのメンバの場合には、エラーとなる。 この関数を呼び出したプロセスの実効グループ ID が、
+返されるリストに含まれるかどうかは規定されていない (したがって、アプリケーションは \fBgetegid\fP(2)
+を呼び出し、その結果の値を追加・削除すべきである)。
 
-.I size
-¤¬ 0 ¤Ê¤é¤Ð¡¢
-.I list
-¤Ï½¤Àµ¤µ¤ì¤Ê¤¤¤¬¡¢¤½¤Î¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤Î¹ç·×¿ô¤¬ÊÖ¤µ¤ì¤ë¡£
-¤³¤ì¤ò»È¤¦¤³¤È¤Ç¡¢¤½¤ì°Ê¹ß¤Î
-.BR getgroups ()
-¤Î¸Æ¤Ó½Ð¤·¤ÇɬÍפȤʤëưŪ³ä¤êÅö¤Æ¥Ð¥Ã¥Õ¥¡
-.I list
-¤Î¥µ¥¤¥º¤ò¡¢¸Æ¤Ó½Ð¤·¸µ¤¬·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+\fIsize\fP が 0 ならば、 \fIlist\fP は修正されないが、そのプロセスの補助グループ ID の合計数が返される。 これを使うことで、それ以降の
+\fBgetgroups\fP()  の呼び出しで必要となる動的割り当てバッファー \fIlist\fP のサイズを、呼び出し元が決定することができる。
 .PP
-.BR setgroups ()
-¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤òÀßÄꤹ¤ë¡£
-ŬÀÚ¤ÊÆø¢ (Linux ¤Ç¤Ï
-.B CAP_SETGID
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤¬É¬ÍפǤ¢¤ë¡£
-.I size
-°ú¤­¿ô¤Ë¤Ï¡¢
-.I list
-¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤¿Êä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤ò»ØÄꤹ¤ë¡£
-.SH ÊÖ¤êÃÍ
-.BR getgroups ()
-¤Ï¡¢À®¸ù¤¹¤ë¤ÈÊä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢
-.I errno
-¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
+\fBsetgroups\fP()  は、呼び出し元プロセスの補助グループ ID を設定する。 適切な特権 (Linux では \fBCAP_SETGID\fP
+ケーパビリティ (capability)) が必要である。 \fIsize\fP 引き数には、 \fIlist\fP
+により参照されるバッファーに格納された補助グループ ID の数を指定する。
+.SH 返り値
+\fBgetgroups\fP()  は、成功すると補助グループ ID の数を返す。 エラーの場合 \-1 を返し、 \fIerrno\fP を適切に設定する。
 
-.BR setgroups ()
-¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤·¡¢
-.I errno
-¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EFAULT
-.I list
-¤¬ÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£
+\fBsetgroups\fP()  は、成功すると 0 を返す。 エラーの場合 \-1 を返し、 \fIerrno\fP を適切に設定する。
+.SH エラー
+.TP 
+\fBEFAULT\fP
+\fIlist\fP が不正なアドレスである。
 .PP
-.BR getgroups ()
-¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
-.TP
-.B EINVAL
-.I size
-¤¬Êä½õ¥°¥ë¡¼¥× ID ¤Î¿ô¤è¤ê¾®¤µ¤¤¤¬ 0 ¤Ç¤Ê¤¤¡£
+\fBgetgroups\fP()  は、上記に加えて以下のエラーで失敗する可能性がある。
+.TP 
+\fBEINVAL\fP
+\fIsize\fP が補助グループ ID の数より小さいが 0 でない。
 .PP
-.BR setgroups ()
-¤Ï¡¢¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
-.TP
-.B EINVAL
-.I size
-¤¬
-.B NGROUPS_MAX
-¤è¤êÂ礭¤¤
-.RB ( NGROUPS_MAX
-¤Ï Linux 2.6.4 ¤è¤êÁ°¤Ç¤Ï 32¡¢Linux 2.6.4 °Ê¹ß¤Ç¤Ï 65536)¡£
-.TP
-.B ENOMEM
-¥á¥â¥êÉÔ­¡£
-.TP
-.B EPERM
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬½½Ê¬¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
-.SH ½àµò
-SVr4, 4.3BSD.
-.BR getgroups ()
-´Ø¿ô¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£
-.BR setgroups ()
-¤ÏÆø¢¤òɬÍפȤ¹¤ë¤¿¤á¡¢POSIX.1-2001 ¤Ë½¾¤Ã¤Æ¤¤¤Ê¤¤¡£
-.SH Ãí°Õ
-¥×¥í¥»¥¹¤Ï¡¢¼Â¸ú¥°¥ë¡¼¥× ID ¤Ë²Ã¤¨¡¢ºÇÂç
-.B NGROUPS_MAX
-¤Þ¤Ç¤ÎÊä½õ¥°¥ë¡¼¥× ID ¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£
-Êä½õ¥°¥ë¡¼¥× ID ¤Î½¸¹ç¤Ï¿Æ¥×¥í¥»¥¹¤«¤é·Ñ¾µ¤µ¤ì¡¢
-.BR execve (2)
-¤ÎÁ°¸å¤ÇÊÝ»ý¤µ¤ì¤ë¡£
+\fBsetgroups\fP()  は、上記に加えて以下のエラーで失敗する可能性がある。
+.TP 
+\fBEINVAL\fP
+\fIsize\fP が \fBNGROUPS_MAX\fP より大きい (\fBNGROUPS_MAX\fP は Linux 2.6.4 より前では 32、Linux
+2.6.4 以降では 65536)。
+.TP 
+\fBENOMEM\fP
+メモリー不足。
+.TP 
+\fBEPERM\fP
+呼び出し元プロセスが十分な特権を持っていない。
+.SH 準拠
+SVr4, 4.3BSD.  \fBgetgroups\fP()  関数は POSIX.1\-2001 に準拠している。 \fBsetgroups\fP()
+は特権を必要とするため、POSIX.1\-2001 に従っていない。
+.SH 注意
+プロセスは、実効グループ ID に加え、最大 \fBNGROUPS_MAX\fP までの補助グループ ID を持つことができる。 定数
+\fBNGROUPS_MAX\fP は \fI<limits.h>\fP で定義されている。 補助グループ ID の集合は親プロセスから継承され、
+\fBexecve\fP(2)  の前後で保持される。
 
-Êä½õ¥°¥ë¡¼¥× ID ¤ÎºÇÂç¿ô¤Ï
-.BR sysconf (3)
-¤ò»È¤Ã¤Æ°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë:
+補助グループ ID の最大数は、実行時に \fBsysconf\fP(3)  を使って以下のようにして調べることができる:
 .nf
 
     long ngroups_max;
     ngroups_max = sysconf(_SC_NGROUPS_MAX);
 
 .fi
-.BR getgroups ()
-¤ÎÊÖ¤êÃͤκÇÂçÃͤϡ¢¤³¤ÎÃͤè¤ê 1 Â礭¤¤Ãͤè¤êÂ礭¤¯¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR getgid (2),
-.BR setgid (2),
-.BR getgrouplist (3),
-.BR initgroups (3),
-.BR capabilities (7),
-.BR credentials (7)
+\fBgetgroups\fP() の返り値の最大値は、この値より大きくなることはない。 Linux 2.6.4 以降では、補助グループ ID の最大数も
+Linux 固有の読み込み専用のファイル \fI/proc/sys/kernel/ngroups_max\fP 経由で公開されている。
+
+元々の Linux の \fBgetgroups\fP() システムコールは 16 ビットのグループ ID だけ
+に対応していた。その後、Linux 2.4 で、32 ビットの ID に対応した
+\fBgetgroups\fP() が追加された。glibc の \fBgetgroups\fP のラッパー関数はカーネル
+バージョンによるこの違いを吸収している。
+.SH 関連項目
+\fBgetgid\fP(2), \fBsetgid\fP(2), \fBgetgrouplist\fP(3), \fBgroup_member\fP(3),
+\fBinitgroups\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。