ct_pr_event_get_exitstatus(3contract) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ct_pr_event_get_exitstatus(3contract)

Contract Management Library Functions
                                                ct_pr_event_get_pid(3CONTRACT)



NAME
       ct_pr_event_get_pid,    ct_pr_event_get_ppid,   ct_pr_event_get_signal,
       ct_pr_event_get_sender, ct_pr_event_get_senderct, ct_pr_event_get_exit‐
       status,      ct_pr_event_get_pcorefile,      ct_pr_event_get_gcorefile,
       ct_pr_event_get_zcorefile - process contract event functions

SYNOPSIS
       cc [ flag... ] file... -D_LARGEFILE64_SOURCE -lcontract [ library... ]
       #include <libcontract.h>
       #include <sys/contract/process.h>

       int ct_pr_event_get_pid(ct_evthdl_t evthdl, pid_t *pidp);


       int ct_pr_event_get_ppid(ct_evthdl_t evthdl, pid_t *pidp);


       int ct_pr_event_get_signal(ct_evthdl_t evthdl, int *signalp);


       int ct_pr_event_get_sender(ct_evthdl_t evthdl, pid_t *pidp);


       int ct_pr_event_get_senderct(ct_evthdl_t evthdl, ctid_t *pidp);


       int ct_pr_event_get_exitstatus(ct_evthdl_t evthdl, int *statusp);


       int ct_pr_event_get_pcorefile(ct_evthdl_t evthdl, char **namep);


       int ct_pr_event_get_gcorefile(ct_evthdl_t evthdl, char **namep);


       int ct_pr_event_get_zcorefile(ct_evthdl_t evthdl, char **namep);

DESCRIPTION
       These functions read process contract event information from  an  event
       object  returned  by  ct_event_read(3CONTRACT)  or ct_event_read_criti‐
       cal(3CONTRACT).


       The ct_pr_event_get_pid() function reads the process ID of the  process
       generating the event.


       The ct_pr_event_get_ppid() function reads the process ID of the process
       that forked the new process causing the CT_PR_EV_FORK event.


       The ct_pr_event_get_signal() function reads the signal  number  of  the
       signal that caused the CT_PR_EV_SIGNAL event.


       The  ct_pr_event_get_sender()  function  reads  the  process  ID of the
       process that sent the signal that caused the CT_PR_EV_SIGNAL event.  If
       the signal's sender was not in the same zone as the signal's recipient,
       this information is available only to event  consumers  in  the  global
       zone.


       The  ct_pr_event_get_senderct  function  reads  the  contract ID of the
       process that sent the signal that caused the CT_PR_EV_SIGNAL event.  If
       the signal's sender was not in the same zone as the signal's recipient,
       this information is available only


       The ct_pr_event_get_exitstatus() function reads the exit status of  the
       process generating a CT_PR_EV_EXIT event.


       The  ct_pr_event_get_pcorefile() function reads the name of the process
       core file if one was created when the CT_PR_EV_CORE  event  was  gener‐
       ated.  A  pointer to a character array is stored in *namep and is freed
       when ct_event_free(3CONTRACT) is called on the event handle.


       The ct_pr_event_get_gcorefile() function reads the name of  the  zone's
       global  core  file  if one was created when the CT_PR_EV_CORE event was
       generated. A pointer to a character array is stored in  *namep  and  is
       freed when ct_event_free() is called on the event handle.


       The  ct_pr_event_get_zcorefile() function reads the name of the system-
       wide core file  in  the  global  zone  if  one  was  created  when  the
       CT_PR_EV_CORE  event  was generated. This information is available only
       to event consumers in the global zone. A pointer to a  character  array
       is  stored in *namep and is freed when ct_event_free() is called on the
       event handle.

RETURN VALUES
       Upon        successful        completion,        ct_pr_event_get_pid(),
       ct_pr_event_get_ppid(),                       ct_pr_event_get_signal(),
       ct_pr_event_get_sender(),                   ct_pr_event_get_senderct(),
       ct_pr_event_get_exitstatus(),              ct_pr_event_get_pcorefile(),
       ct_pr_event_get_gcorefile(), and ct_pr_event_get_zcorefile() return  0.
       Otherwise, they return a non-zero error value.

ERRORS
       The ct_pr_event_get_pid(), ct_pr_event_get_ppid(), ct_pr_event_get_sig‐
       nal(),      ct_pr_event_get_sender(),       ct_pr_event_get_senderct(),
       ct_pr_event_get_exitstatus(),              ct_pr_event_get_pcorefile(),
       ct_pr_event_get_gcorefile(), and ct_pr_event_get_zcorefile()  functions
       will fail if:

       EINVAL    The evthdl argument is not a process contract event object.



       The          ct_pr_event_get_ppid(),          ct_pr_event_get_signal(),
       ct_pr_event_get_sender(),                   ct_pr_event_get_senderct(),
       ct_pr_event_get_exitstatus(),              ct_pr_event_get_pcorefile(),
       ct_pr_event_get_gcorefile(), and ct_pr_event_get_zcorefile()  functions
       will fail if:

       EINVAL    The requested data do not match the event type.



       The ct_pr_event_get_sender()a functions will fail if:

       ENOENT    The  process ID of the sender was not available, or the event
                 object was read by a process running in a non-global zone and
                 the sender was in a different zone.



       The   ct_pr_event_get_pcorefile(),   ct_pr_event_get_gcorefile(),   and
       ct_pr_event_get_zcorefile() functions will fail if:

       ENOENT    The requested core file was not created.



       The ct_pr_event_get_zcorefile() function will fail if:

       ENOENT    The event object was read by a  process  running  in  a  non-
                 global zone.


EXAMPLES
       Example 1 Print the instigator of all CT_PR_EV_SIGNAL events.



       Open  the  process contract bundle. Loop reading events. Fetch and dis‐
       play the signalled pid and  signalling  pid  for  each  CT_PR_EV_SIGNAL
       event encountered.


         #include <sys/types.h>
         #include <fcntl.h>
         #include <stdio.h>
         #include <libcontract.h>

         ...
         int fd;
         ct_evthdl_t event;
         pid_t pid, sender;

         fd = open("/system/contract/process/bundle", O_RDONLY);
         for (;;) {
                 ct_event_read(fd, &event);
                 if (ct_event_get_type(event) != CT_PR_EV_SIGNAL) {
                         ct_event_free(event);
                         continue;
                 }
                 ct_pr_event_get_pid(event, &pid);
                 if (ct_pr_event_get_sender(event, &sender) == ENOENT)
                         printf("process %ld killed by unknown process\n",
                             (long)pid);
                 else
                         printf("process %ld killed by process %ld\n",
                             (long)pid, (long)sender);
                 ct_event_free(event);
         }
                 ...


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe


SEE ALSO
       ct_event_free(3CONTRACT), ct_event_read(3CONTRACT), ct_event_read_crit‐
       ical(3CONTRACT),     libcontract(3LIB),     contract(5),    process(5),
       attributes(7), lfcompile(7)



Oracle Solaris 11.4               19 Jul 2004
                                                ct_pr_event_get_pid(3CONTRACT)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3