UNIX . MS-DOS, Windows , UNIX . , . (. . 4.2.1) , UNIX , , .
UNIX, fork(). , -: , .. . (pid) , . , , , , fork. fork - pid , 0. , .
C :
pid = fork(); //
if (pid == -1) //
{ }
else if (pid == 0) //
{ , - }
else // -
{ , - }
, . , , . exec. , exec, , PATH .. , , . .
, . , 0. , INIT 1. INIT.
exit(status). status , , 0 , .
|
|
- , . , - ( , ). wait:
pid = wait(&status);
, . , , UNIX, , , . wait pid , status .
- , wait, , . , . , , . wait, , .
, - , . , INIT.
UNIX . , UNIX /, . , / , . / .
-, . . (pid) . , , . , , , .
, . (foreground), (background). .
. , Ctrl+C, . , .
, , . , UNIX , , , . UNIX , , , , ..
|
|
37. UNIX.
UNIX, , (pipe), , / .
. pipe, , . , . , , , , , (, , ). , , , , .
, , . , , .
( , , - ), -, , , .
, , - , . .
: , , , . , FIFO. mknod, , . UNIX . , open , .
, .
. UNIX 16 32 . . . :
SIGKILL ;
SIGTERM : , ;
SIGILL ;
SIGSEGV ;
SIGHUP (, );
SIGPIPE , ;
SIGSTOP ;
SIGCONT ;
SIGINT Ctrl+C, ;
SIGALRM ;
SIGCHLD ;
SIGPWR , (.. );
SIGUSR1, SIGUSR2 , .
|
|
(, SIGHUP , ).
. kill. . ( pid ), , , . , 0 1.
, . .
, . .
.
, .
SIGKILL SIGSTOP . . signal. , , , , .
- , . , , , . : , .
- . : , .
UNIX, , , .
38. shell UNIX.