Unix-system-calls-killpg

提供:Dev Guides
移動先:案内検索

[top]#

|http://www.google.com/[Google] | a|

Web This Site
  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

[cols=",,,,,,,",]

| |  Home   | |  References   | |  Discussion Forums   | |  About TP  

[width="100%",cols="100%",]

a| == killpg()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

killpg-プロセスグループにシグナルを送信

概要

  • #include <signal.h> *
*int killpg(int* __pgrp __ **、int * *__sig __* *); **

説明

*killpg* ()は、シグナル_sig_をプロセスグループ_pgrp_に送信します。 シグナルのリストについては、 *signal* (7)を参照してください。 _pgrp_が0の場合、 *killpg* ()は送信プロセスのプロセスグループにシグナルを送信します。

(POSIXによれば、_pgrp_が1以下の場合、動作は未定義です。)

プロセスがシグナルを送信する許可を得るには、特権(Linuxの場合: CAP_KILL 機能がある)であるか、送信プロセスの実際または有効なユーザーIDが、実際のまたは保存されたset-user-IDに等しくなければなりません。ターゲットプロセス。 SIGCONTの場合、送信側プロセスと受信側プロセスが同じセッションに属していれば十分です。

返り値

成功すると、ゼロが返されます。 エラーの場合、-1が返され、_errno_が適切に設定されます。

エラー

Tag Description
EINVAL Sig is not a valid signal number.
EPERM The process does not have permission to send the signal to any of the target processes.
ESRCH No process can be found in the process group specified by pgrp.
*ESRCH * The process group was given as 0 but the sending process does not have a process group.

ノート

BSDタイプのシステムとSystem Vタイプのシステムでは、パーミッションのチェックにさまざまな違いがあります。* kill *()のPOSIX理論的根拠を参照してください。 POSIXで言及されていない違いは、戻り値EPERMに関係します:BSDは、少なくとも1つのターゲットプロセスの許可チェックが失敗したときに信号が送信されず、EPERMが返されることを文書化しますが、POSIXは、すべてのターゲットプロセスの許可チェックが失敗したときにのみEPERMを文書化します。

準拠

SVr4、4.4BSD( killpg ()関数呼び出しは4BSDで初めて登場)、POSIX.1-2001。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

|  

[cols="^",]

|Advertisements