Unix-system-calls-getpgid
[top]#
|http://www.google.com/[Google] | a|
Web | This Site |
選択した読書 Copyright©2014 by finddevguides |
[cols=",,,,,,,",] |
| | Home | | References | | Discussion Forums | | About TP
[width="100%",cols="100%",] |
a| == setpgid()-Unix、Linuxシステムコール
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]
広告
NAME
setpgid、getpgid、setpgrp、getpgrp-プロセスグループの設定/取得
概要
- #include <unistd.h> *
説明
呼び出し setpgrp ()は* setpgid(0,0)*と同等です。
同様に、 getpgrp ()は getpgid (0)と同等です。 各プロセスグループはセッションのメンバーであり、各プロセスはそのプロセスグループがメンバーであるセッションのメンバーです。
プロセスグループは、信号の配布に使用され、端末は入力要求を調停します。端末と同じプロセスグループを持つプロセスはフォアグラウンドで読み取りが可能ですが、他のユーザーは読み取りを試みると信号でブロックされます。 したがって、これらの呼び出しは、 csh (1)などのプログラムで使用され、ジョブ制御の実装時にプロセスグループを作成します。 termios (3)で説明されている TIOCGPGRP および TIOCSPGRP 呼び出しは、制御端末のプロセスグループを取得/設定するために使用されます。
セッションに制御端末がある場合、CLOCALは設定されず、ハングアップが発生し、セッションリーダーにSIGHUPが送信されます。 セッションリーダーが終了すると、SIGHUPシグナルが制御端末のフォアグラウンドプロセスグループの各プロセスに送信されます。
プロセスの終了によりプロセスグループが孤立し、新たに孤立したプロセスグループのメンバーが停止した場合、SIGCONTシグナルが後に続くSIGHUPシグナルが、新たに孤立したプロセスグループの各プロセスに送信されます。 。
返り値
成功すると、 setpgid ()および setpgrp ()はゼロを返します。 エラーの場合、-1が返され、_errno_が適切に設定されます。
エラー
Tag | Description |
---|---|
*EACCES * | An attempt was made to change the process group ID of one of the children of the calling process and the child had already performed an* execve*() (setpgid(), setpgrp()). |
EINVAL | pgid is less than 0 (setpgid(), setpgrp()). |
EPERM | An attempt was made to move a process into a process group in a different session, or to change the process group ID of one of the children of the calling process and the child was in a different session, or to change the process group ID of a session leader (setpgid(), setpgrp()). |
*ESRCH * | For* getpgid*(): pid does not match any process. For setpgid(): pid is not the current process and not a child of the current process. |
準拠
関数 setpgid ()および getpgrp ()はPOSIX.1-2001に準拠しています。 関数 setpgrp ()は4.2BSDのものです。 関数 getpgid ()はSVr4に準拠しています。
ノート
POSIXは、BSD関数 setpgrp ()から setpgid ()を取得しました。 System Vにも同じ名前の関数がありますが、 setsid (2)と同じです。
glibcでプロトタイプを取得するには、XOPEN_SOURCEと_XOPEN_SOURCE_EXTENDEDの両方を定義するか、500以上の整数_n_に「#define _XOPEN_SOURCE _n」を使用します。
関連項目
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]
広告
|
[cols="^",] |
|Advertisements