summaryrefslogtreecommitdiffstats
path: root/posix1003_1/process_primitives.rst
blob: 646afbf621b0dc5e90d2f5337c50ebad6462e099 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
Process Primitives
##################

Process Creation and Execution
==============================

Process Creation
----------------

.. code:: c

    fork(), Function, Unimplementable, Requires Processes

Execute a File
--------------

.. code:: c

    execl(), Function, Unimplementable, Requires Processes
    execv(), Function, Unimplementable, Requires Processes
    execle(), Function, Unimplementable, Requires Processes
    execve(), Function, Unimplementable, Requires Processes
    execlp(), Function, Unimplementable, Requires Processes
    execvp(), Function, Unimplementable, Requires Processes

Register Fork Handlers
----------------------

.. code:: c

    pthread_atfork(), Function, Unimplementable, Requires Processes

Process Termination
===================

Wait for Process Termination
----------------------------

.. code:: c

    wait(), Function, Unimplementable, Requires Processes
    waitpid(), Function, Unimplementable, Requires Processes
    WNOHANG, Constant, Unimplementable, Requires Processes
    WUNTRACED, Constant, Unimplementable, Requires Processes
    WIFEXITED(), Function, Unimplementable, Requires Processes
    WEXITSTATUS(), Function, Unimplementable, Requires Processes
    WIFSIGNALED(), Function, Unimplementable, Requires Processes
    WTERMSIG(), Function, Unimplementable, Requires Processes
    WIFSTOPPED(), Function, Unimplementable, Requires Processes
    WSTOPSIG(), Function, Unimplementable, Requires Processes

Terminate a Process
-------------------

.. code:: c

    _exit(), Function, Implemented

Signals
=======

Signal Concepts
---------------

Signal Names
~~~~~~~~~~~~

.. code:: c

    sigset_t, Type, Implemented
    SIG_DFL, Constant, Implemented
    SIG_IGN, Constant, Implemented
    SIG_ERR, Constant, Implemented
    SIGABRT, Constant, Implemented
    SIGALRM, Constant, Implemented
    SIGFPE, Constant, Implemented
    SIGHUP, Constant, Implemented
    SIGILL, Constant, Implemented
    SIGINT, Constant, Implemented
    SIGKILL, Constant, Implemented
    SIGPIPE, Constant, Implemented
    SIGQUIT, Constant, Implemented
    SIGSEGV, Constant, Implemented
    SIGTERM, Constant, Implemented
    SIGUSR1, Constant, Implemented
    SIGUSR2, Constant, Implemented
    SIGCHLD, Constant, Unimplemented
    SIGCONT, Constant, Unimplemented
    SIGSTOP, Constant, Unimplemented
    SIGTSTP, Constant, Unimplemented
    SIGTTIN, Constant, Unimplemented
    SIGTTOU, Constant, Unimplemented
    SIGBUS, Constant, Implemented
    SIGRTMIN, Constant, Implemented
    SIGRTMAX, Constant, Implemented

NOTE: SIG_ERR is technically an extension to the C Library which is
not documented anywhere else according to the index.

Signal Generation and Delivery
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: c

    struct sigevent, Type, Implemented
    union sigval, Type, Implemented
    SIGEV_NONE, Constant, Implemented
    SIGEV_SIGNAL, Constant, Implemented
    SIGEV_THREAD, Constant, Implemented

Signal Actions
~~~~~~~~~~~~~~

.. code:: c

    siginfo_t, Type, Implemented
    SI_USER, Constant, Implemented
    SI_QUEUE, Constant, Implemented
    SI_TIMER, Constant, Implemented
    SI_ASYNCIO, Constant, Implemented
    SI_MESGQ, Constant, Implemented

Send a Signal to a Process
--------------------------

.. code:: c

    kill(), Function, Implemented

Manipulate Signal Sets
----------------------

.. code:: c

    sigemptyset(), Function, Implemented
    sigfillset(), Function, Implemented
    sigaddset(), Function, Implemented
    sigdelset(), Function, Implemented
    sigismember(), Function, Implemented

Examine and Change Signal Action
--------------------------------

.. code:: c

    sigaction(), Function, Implemented
    sigaction, Type, Implemented
    SA_NOCLDSTOP, Constant, Implemented
    SA_SIGINFO, Constant, Implemented

Examine and Change Blocked Signals
----------------------------------

.. code:: c

    pthread_sigmask(), Function, Implemented
    sigprocmask(), Function, Implemented
    SIG_BLOCK, Constant, Implemented
    SIG_UNBLOCK, Constant, Implemented
    SIG_SETMASK, Constant, Implemented

Examine Pending Signals
-----------------------

.. code:: c

    sigpending(), Function, Implemented

Wait for a Signal
-----------------

.. code:: c

    sigsuspend(), Function, Implemented

Synchronously Accept a Signal
-----------------------------

.. code:: c

    sigwait(), Function, Implemented
    sigwaitinfo(), Function, Implemented
    sigtimedwait(), Function, Implemented

Queue a Signal to a Process
---------------------------

.. code:: c

    sigqueue(), Function, Implemented

Send a Signal to a Thread
-------------------------

.. code:: c

    pthread_kill(), Function, Implemented

Timer Operations
================

Schedule Alarm
--------------

.. code:: c

    alarm(), Function, Implemented

Suspend Process Execution
-------------------------

.. code:: c

    pause(), Function, Implemented

Delay Process Execution
-----------------------

.. code:: c

    sleep(), Function, Implemented

.. COMMENT: COPYRIGHT (c) 1988-2002.

.. COMMENT: On-Line Applications Research Corporation (OAR).

.. COMMENT: All rights reserved.