����� 14� ���� �����:
������������� �������� ������� ������������� ��������� ��� ������������ ������ ������������� ������� fork ������ ��������, ���������� ��� ���������� �������� � ����� �������� ���������� ���������� ����������������������� ������� system u ���� ����� �� �� ��������� ������ shell ������� ���������� �����-���� �������, �� ������ ������� ����� �������. ���� ����� ������� ���������� ����������� ��������� shell, ����������� ����������, �� � ����������� � ���������. ����������� ������� Perl-��������� � ��������� ��������� ����� �������� � ����� ������ ���, ��� � ����������� ������ ��������, �������-���� ���������. ����� ������� ������ ������� ������ �������� � ������������ ��� ����� ������� system. � ���������� ����� ��� ������� �������� � ���������� ����� shell /bin/sh ���� ������, ������� ����� ����������� ��� �������. �� ���������� ������� ������� system ���������� ��� ���������� ������ ������� (���� ��� ���� ��������� � ���, ��� �������, 0). ��� ������ ����, ��� Perl-��������� ��������� ������� date c ������� shell*: system("date"); ����� �� �� ��������� ������������ ��������, �� ��������� ����� ���������� ������ � date ���� �� ��������. ���� ���� ��������� ���� �������? ������ ��������� �������� ������, ���� ��� ����� �������? ������� �������, � ������ �� ��� �������� ������, ��� ���������� ��������� ������� �������� ���������. * � ������ ������ shell ���������� �� ������������, ��������� ��dz ��� ��������� �������� shell, ���� ��������� ������ ���������� ������, ��� � ������ ������. ��� ����������� ����� ��� ������� system (����������� ����, ����������� ����� � ����������� ����� ������) ����������� �� Perl-��������. ����� �������, ��������� ���������� ������� dale � ����������� ���� ������� ������������ ���� ��, ���� ��������� ��������� ���������� ������� print stdout � ����ź �����, �� ������� ���������� �� ������������. ��������� �� ���������� shell, �� ������ �������������� ����������� �����, ��������� �������� ��� /��/sh ���������� �������������. ��������, ����� ��������� ���������� ������ ������� date � ���� right_now, ����� ������� ���-�� ����� �����: system("date >right_now") && die "cannot create right_now"; �� ���� ��� �� �� ������ �������� ��������� ������� date � ����, �������� ������������� � shell, �� � ��������� ������ ��������. ���� ������ �������� � �������� "������" (�� ����), ��� ������, ��� � �������� shell ���-�� ���������, � ������� die �������� ���� ������. ������ ������� ������� ������� �������� ���������� �������� � Perl: ��������� ������-������ �������� �������� system, ��� �������, ��������� �� �����-�� ������. ���������� ������� system ����� ���� ���, ��� �������� ��� �������� � /��/sh, ������� ����� �������� ����� ��������� ������, �������� �� ������� � ������� ��� ��������� ����� ������. ��������, ����� ������� ������ ������ &, �����������, �� ��������� �� ���� �� ����������, �.�. � ������ ������ ��� ���������� ���������� ����, ��� ���� �� �� ����� � shell ������, ������� ������������� �������� &. ��� ������ ������� ������ date � who � shell � ��������� ����������� � ����, �������� Perl-����������. ��� ��� ����������� � ������� ������, ����� ��� ����������� ���������� Perl-�������� �� ����� ���� ����� ���������� ������� ��������. $where = "who_out.".++$�; t �������� ����� ��� ����� system "(date; who) >$where &"; � ���� ������ ������� system ���������� ��� ������ shell � ���������� ����� �������, ������� �� ��� ������� ������� �������, �� �� ��������, ���� �� ������� ��������� ������� date � who. � ���� ����������� � ������� ������� ������ ������������ ������������ ����������, ������� ���������� $ where ���������� ����� ��������� (��� ������ Perl, � �� shell). ���� �� �� ������ ���������� � ���������� shell � ������ $where, ��� ����� ���� �� ��������� ����� ������ ������� �������� ����� ��� ������������ ������ � ��������� ��������. ������ ����������� ������������ ������, ����������� ������� ��-������� �� ������������� �������� ����� ������ �����. ��� ������� ��������, �������� �������� umask, ������� ������� �, �������, ������������� ������������. ����� ����, ����������� ������� ��������� ��� ���������� �����. ��� ���������� ������ ���������� �������� csh setenv ��� �� ��������������� ������������� � ������ �� export shell (/bin/sh). ���������� ����� ������-������ ������� ���������, ������� ��� shell, ��� ��������� ������� ������ ���� ������ � ���������� ���. � Perl ������������� ����������� �������� � ��������� ������� ����-������ ����� ����������� ������������ ����, ������� ���������� %env. ������ ���� ����� ���� ������������� ����� ���������� �����, � �������-�������� �������� � �������� ����������. ���������� ������� ���� �������� ��������� �����, ���������� Perl ������������ shell; ��������� ���� �������� ��������� �����, ������� ���������� Perl � ����������� �� ��������, �� �� �����, ������������ ������������� ����������. ��� ������� ���������, ������� ��������, ��� printenv: foreach $key (sort keys %ENV) ( print "$key = $ENV($key)\n"; > . , �������� ��������: ���� ��������� ����� � ��� �� ������ �������� ������������, � ������ ��������� ������, � ������� �������� ������� print ������ ��������� ���� TERM=xterm ��� U3ER=merlyn. ��� �������� ���������, � ������� �������� �������� ���������� path ���������� ����� �������, ����� ����� ������� grep, ���������� �������� system, ������������ ������ � "�������" ������: $oldPATH = $ENV{ "PATH"); # ��������� ���������� ���� $ENV("PATH") = "/bin:/usr/bin:/usr/ucb"; # ������ ��������� ���� systemC'grep fred bedrock >output") ; # ��������� ������� $ENV{"PATH"} = $oldPATH; # ������������ ���������� ���� ��� ����� ������ �������� ��������! ������� ������� ����� ������ ���������� �������ź �������� ��� ����� �������� ����. �������� �� ������� ��������� �����������, �������� local ����� ������ ���� ����, ������� �� ��� ���� �������� ��: ��� �������� �������-���� ��������� �������� ������ �������� ������� ��� ����. { local $ENV{"PATH"> " "/bin:/usr/bin:/usr/ucb"; ! systemC'grep fred bedrock >output"); > ������� system ����� ��������� �� ���� ��������, � ������ �������-���. � ���� ������ Perl �� �������� ������ ���������� � shell, � ������������� ������ �������� ��� ���������� ���������� ������� (��� ������������� ������������ �� ����� �������� ���������� path), � ��������� �������-�� � ��� ��������� ������� ��� ������� ��� shell �������������. ������� �������, ��� �� ����� ��������� � ������� ���������� ������� � �����-������� �� ����������, ������� �������� ������� ������, ������ ��� ��� ��� � ������ �������, ������������ � ���������. ����� �������, ������-��� ��� ������� ������������: system "grep 'fred flintstone' buffaloes"; # � �������������� shell system "grep","fred flintstone","buffaloes"; # ��� ������������� shell
���������� � ������� system ������, � �� ����� ������, �������� ����� ���� ������� shell, ������� ���������� ��� ��� ����� �����������. (���� ����� ������� system c ����� ���������� ���������� ������, Perl ��� ������������ ���, ��������� ������ ����� shell � ��������� � �������-�������� ��������� ���������������, ��� ���� �� �� ������������ ����� ������� � ����������� �����������.) ��� ��� ���� ������ ������������� ����: Ocfiles = ("fred.c","barney.c"); # ��� ������������� Soptions = ("-DHARD","-DGRANITE"); # ����� system "cc -o slate Soptions Bcfiles"; # c shell system "cc","-o","slate",goptions,Scfiles"; # ��� shell ������������� �������� ������� ��� ���� ������ ������� �������� � ��������� ��������� ������ ��� /��/sh � �������� �������. ��� � � shell, ���� �������� ��������� ������� � ������� �� ����������, ������� ������ �� ������������ ������ �� ���� �� �����������: $now = "the time is now".'date'; # �������� ����� � ���� �������� ���������� $now ������ ������������ ����� ����� the time is now � ��������� ���������� ������� date(l) (������� �������� ������ ����� ������): the time is now Fri Aug 13 23:59:59 PDT 1996 ���� ������ � �������� ������� ������� ������������ �� � ���������, � � ��������� ���������, �� ������������ ������ ��������� ��������, ������ �� ������� ������������ ����� ������ (�������������� �������� ����� ������*) �� ���������� ���������� �������. � ������� � �������� date � ��� ��� �� ����� ���� �������, ������ ��� ��� ������ ����� ���� ������ ������. ��������� ������ ������� who �������� ���: merlyn tty42 Dec 7 19:41 fred ttylA Aug 31 07:02 barney ttylF Sep 1 09:22 ��� ��� ����� �������� ���� ��������� � ��������� ���������: foreach $_ ('who') ( # ���� ��� ��� ������ ������ ������ �� who <$who,$where,$when) = /(\S+)\s+(\S+)\s+(.*)/; print "$who on $where at $when\n"; } * ��� ��������, ������� � ��� ������� � ���������� $/.
��� ������ ���������� ����� ����� ������������ ���� ������ �����-��� ������ ������� who, ������ ��� ������ � �������� ������� ������� ���������������� � ��������� ���������. ����������� ���� � ����������� ����� ������ �������, ������ � �������� �������, ����������� �� Perl-��������*. ��� ������, ��� ������ ����������� ����� ����� ������ �� ������ �������� ��� �������� ������, ����������� � �������� �������. ���� �� ���������������� �������� � ����������� ������������ ������ ������ �� ����������� �������, ����� ������� � �������� �������� "���������" �� ���. ��� ����� ������������ ����������� shell 2>&1: die "rm spoke!" if 'rm fred 2>&1'; ����� Perl-������� �����������, ���� rm �������� �����-������ ������-��� � ���� �� ����������� �����, ���� �� ����������� ����� ������, ������ ��� ��������� ������ �� ����� ������ ������� (������ ������ ����-����������� �� �������� "����"). ������������� ��������� ��� ������������ ������ ��������� ������ ������� �������� � �������� ��������, ������� �����-��� ��� ���������� ����� (���������� ������������ ������������ �����(3), ���� �� � ��� �������). �� ����� ������� ��� �������� ���������� �����, ������� ���� �������� ��������� ������ ��������, ���� ������ � ���� ������� ������**. ���� �������� ������ �������� ����������� ����� ��� �������� who(l). ��������� ���� ������� ������ ���������, ������� �� ����� ���������, �� ������� ���������� �����, �������� ��� ������: open(WHOPROC, "who 1"); # ������� who ��� ������ �������� �������� �� ������������ ����� ������ �� who. ��� ����� ����������� Perl � ���, ��� ������ �������� open ��������� �� � ����� �����, � � �������, ������� ���������� ���������. ��������� ����� ����� ������ �� �������, ������ ���������� ����� ����������� ��� ������. ��� ��������, ��� �������������� ����� ������ �� ������������ ������ ������� who. (����������� ���� � ����������� ����� ������ ���������� ������-�������� ��������� � Perl-���������.) ��� ��������� ����� ��������� ���������� whoproc � ��� ������ ���������� �����, ������� ������ ��� * �� ����� ���� ��� �� ��� ������. ��. ��������������� ����� � ������� 8 �������� ����� ���������� �������� �� Perl ("��� ����������� stderr �� ������� �������?"). ���� � ��� Perl ������ 5.004, ���� ������� ���������������� ��� ������� man-�������� � � ������ ������ per/faq8( 1). ** Ho �� ������������. ������� ��������������� ����� ��������� � ����� 6 ����� Programming Perl � �� man-�������� ���1���(1).
������, ��� �������� ����������� ���������� ��� ������ ���� ������� �������� �����-������. ��� ��� ����� ��������� ������ �� ������� who � ������: @whosaid = <WHOPROC>; ����������� ������� ��� ������� �������, ������� ���������� ����-��� ������, �� ����� ������� ���������� ����� �������� ��� ������, �������� ������������ ����� ����� �� �������, ��������: open(LPR,"|Ipr -Psiatewriter") ; print LPR Srockreport; close(LPR) ; � ���� ������ ����� �������� lpr �� ���������� � ���� ������ � ��������� ������ ����. ��������� �������� � ������������ ����� ��������� ��������� ������� ����������� � Perl-����������. ������� ��� ����������� ����� ������� close ���������� Perl-��������� ������� ���������� ��������. ���� ���������� �� ����� ������, ������� ����� ������������ ���� ����� ���������� Perl-���������. �������� �������� ��� ������ ������������, ��� ����������� ���� ������� ����� ������� �� ����������� �����. ����������� ����� � ����������� ����� ������ ������������ ���� ��������� ��������� � Perl. ��� � ������, �� ������ ������������ ������������� �����-������ � ����� /bin/sh. ��� ��� � ����� ��������� ������� ����� ����������� ��������� �� ������� ������� Ipr. open(LPR,"|Ipr -Psiatewriter >/dev/null 2>&1"); � ������� �������� >/dev/null �������������� ������������ ������������ ������ ����� ������������� ��� �� ������� ����������. �������� 2>&1 ������������ �������� ������������ ������ ������ ����, ���� ������������ ����������� �����, ������� ��������� �� ������� ����� �������������. ����� ���� ���������� ��� ��� ��������� ��������� � � ���������� �������� ����� ��� ���� ������������������ �������������, ����� �����: open (WHO,"who[ ") ; open (LPR,"|Ipr - Psiatewriter"); while (<WHO>) ( unless (/fred/) { # �� ���������� ��� ���� print LPR $_: > } close WHO; close LPR; �������� �� ����������� who �� ����� ������, ���� �������� ���� ������� � ���������� lpr ��� ������, ������� �� �������� ���������� �������� fred. � ���������� �� ������� ��������� ������ �� ������, ������� �� �������� ����� fred.
����� �� ����������� ��������� � ������� open ������ �� ����� ������� �� ���� �����. � ��� ����� ������ ����� ���� �����ʺ�. ��������, ������-��� ������ ��������� ������� ls(l), ������� �������� ���� ���������� �� ������ � ������� tail(l), �������, � ���� �������, �������� ���� ���������� � ���������� ����� who pr: open(WHOPR, "Is I tail -r I"); ������������� ������� fork ��� ���� ������ �������� ������ �������� � ������������ �������� Perl-�������� � ������� UNIX-������� fork. ������� fork ������ �� �� �����, ��� � ��������� ����� fork(2): ������� ���� �������� ��������. ���� ���� (�� ���������� ����������� ���������, � �������� � ������������) ���������� ��� �� ����������� ���, �� �� ���������� � ���� �� �� ��������� �����. ����������� ��� ��� �������� �� ������������� �������� ������� fork: ��� ������������ �������� ��� ����� ����, � ��� ������������� � ��������� (��� undef, ���� ���� ��������� ����� �������� ���������). ��������� ��������, ���������� ������������ ���������,� ��� �� ��� ���� ��� ������������� ������������ ��������. �� ������ ��������� ���������-��� �������� � ����������� ��������������: if (!defined($child_pid = fork()) { die "cannot fork: $!"; } elsif ($pid) { 4s � � ������������ ������� } else ( # � � ����������� ������� > ����� ����������� ���������� ������������ ���� ����, ��� ����� ������� ��� ��������� �������, �������� ������ ������ �� ����� UNIX-�����: ��� ������� wait, exit � ����. ����� ������� �� ��� � ������� ����. ��� ����� �� �� �����, ��� � ������� system, �� ��� �����������, ��� ������ ������� ������ �������� ��� ���������� shell-������� Perl �������� ������� ������� �� shell. ����� ��������� ���������� ���� Perl-��������� ��������, ��������� ������ ��� ����������� ������������� ���������. ��������, ���� "date"; �������� ������� Perl-��������� �������� date, ��������� ��������� ���� ������� �� ����������� ����� Perl-���������. ����� ���������� ������� date ������ ������ ������, ������ ��� Perl-��������� ����� �������. ��� ��� ����� ������������� � ��-�������: ������� system ������ �� ���������� ������� fork c �������� ����, ��������: # ����� �... ������������� system: system("date"); t ����� 2... ������������� fork/exec: unless (fork) ( # fork ������ ����, ������� � � ����������� ������� � � ��������: exec ("date") ; t ����������� ������� ���������� �������� date } ������������ fork � exec ����� �������� � �� ������ ���������, ������ ��� ������� date � ������������ ������� "������" ������������, �� ���������� ����� ������������ � ��������� ��� ����. ��� ���� ������������� �������� �������� ���������, ���� �� ���������� ����������� �������? ������ ��� � ������ ������� wait; ��� ���� ���������� ������� (�� � ������, ���� ���� ������) ������������ ��������. ������� waitpid ����� ������-����: ��� ���� ���������� �� ������, � ������������� ������������ ��������: if (!defined($kidpid = fork()) ( # fork ���������� undef, �.�. ������� die "cannot fork: $!"; � elsif ($pid =" 0) { # fork ���������� �, ������� ������ ����� � ����������� ������� exec("date") ; # ���� exec ������ �������, ������� � ���������� ��������� die "can't exec date: $!"; } else { # fork ���������� �� 0 � �� undef, # ������� ������ ����� � ������������ ������� waitpid($kidpid, 0) ; } ���� ��� ��� ������� ��� ������� �������, ������� ��������� ������ fork(2) � ����(2), ������� ��������� � ��� � �����-������ ����������� �� �� UNIX, ������ ��� Perl ������ �������� ������ ���� ������� ����� � ��������� ������ UNIX. ������� exit ������������ ����������� ����� �� �������� Perl-���-�����. ��� ������������ ��� ���������� Perl-��������� ���-������ ����-������ ��� � ������ � �������� fork � ��� ���������� Perl-���� � �������� � ����������� �������. ��� ������ �������� ���������� ������ �� ��������///?�? � ������� ������ � ������� ������������ Perl-��������: unless (defined ($pid = fork)) ( die "cannot fork: $!"; } unless ($pid) ( unlink </tmp/badrock.*>; # ������� ��� ����� exit; # ����������� ������� ��������������� ����� ) # ������������ ������� ������������ ����� waitpid($pid, 0); # ����� ����������� ������������ �������� ����� ��� ������ ��� ������������� ������� exit ����������� ������� ��������� �� ��������� Perl-��� (�� ������ "# ������������ ������� ������������ �����") � � ��� ��� ����� ��� � �� �����. ������� exit ����� ����� �������������� ��������, �������� �������� ����� ������, ������� �������������� ������������ ���������. �� ��������� ����� ������������ � ������� �����, ������������, ��� ��� ������ ���������. ������ ��������, ���������� ��� ���������� ��������, �������� ��� ������� ���������, ����������� � ������� 14.1. ������� 14.1. �������� ������� ���������
����� ������� ������ ������� ������� � ������������ ��� ����� ����-��� system. �� ����������� ����, ����� � ����� ������ ��� �� ������ (��� ����������� �� Perl-��������). ������ � �������� �������� ������� ������� � �������� ������ �� ������������ ������ ����� �������� ��� ��������� �������� ��� Perl-���������. ����������� ���� � ����������� ����� ������ �� ����������. ��� ��� ������ ������� ���������� �������� �� ���������� ������� ����. ������� ������ �������� ����������� ������� (�������, ������� ��-������� ���������� ���������� Perl-��������� �� ������ ����������) � ������� ������� ��� ���������� ����� � ��������� ������ ��� ������������ ����� ��� ������������ ������ ���� �������. �������, �������� ��� ���������� ����� ��� ������, ��������� ����������� ���� � ����������� ����� ������ �� Perl-���������; �������, �������� ��� ���������� ����� ��� ������, ��������� �� Perl-��������� ����������� ����� � ����������� ����� ������. ����� ������ ������ ��������� ������� � ��������� ��������� ������� ������� fork, ���� � wait ��� waitpid, ������� ��������� ���������-���� ����� UNIX-������. � ������� ���� ������� �� ������ ��������� �����-���� ������� ��������� ��� ����������, � ����� ��������������� �� ��Ϻ�� ���������� ����������� ����, ����������� ����� � ����������� ����� ������*. �������� � ����� �������� ���� �� ��������� ����������� �������������� �������������� ����-��� �� �������� � ������ ��������. ������ � ��� ������������� ��������� (����������, ��� "��������� ������ �������"), ������� ���������� � ������� �� ������� �������� ��� �� ����. �������� ������������� ������, ������ �� ��������� �� ������� �� ���������� �����, �������� 15 ��� 31. ���� ������� (�������������) ����� ���������������� �������� � ����-������ � ������� ������������� ��� ������������� ������������ ������-������� (��������, ��� ����� ������ ��� � �������������� ���������, ����������� ��� ���������� �������� � ��������� �������). ������ ������� ������������ ������������� ������������� �� ������ ���������, �� �� �� ����, � ������ �� ���, ������� ����� ���������� �� �������� ��������. �������� ������� ����������� ������ � ��� ������, ���� �� ���Ѻ���� ����������������� ������������� ��� ���� ���������� ������ ������� ����� ��� �� ������������� ������������, ��� � �����������. ����� �� ������ ���������� ��������� �������. ������������� ������� ��������� ������������ �������� �� ���������, ��������, ������������ ���������� ��� ������������ ��������. ��������� ������� �� ��������� * ������� ����� ����� � ������ ���� open(STDERR, ">&stdout") , ������������ ��� ������ ��������� ������������ ������. ��. ����� open � ����� 3 ����� Programming Perl ��� �� man-�������� per1func(l).
��������� ������������. ����� ��� ������ ������� �������� �� ��������� ����� ���� ��������������, � ��� ����� ������ ������ ���� �����������-��, ���� �������������� (� �������������� ������� ��������� ����������-��� ����� ����). ��� ��� ���������� ����, ��� �������� � � ������ ������ �����������-�����, �� ������ ���������� �������� ���������� ������������� Perl-��-�����. ����� Perl-������� ������������� ������, ���������� � ����������-��� ���������� ��������� ���� ������������, ����������� �������� ������������� �� ��� ���. ����� ��� ������������ �����������, �������-��� ����������� ���� ��������������, ��� ����� ������ �� ��������� (�� ����������� ��������� ����������� ��������, ����������� ���� ������-�������,� ���� ��� ������ ���-������ ������). ������ ������������-���������� ������� ������ ���� �� ����: �����-���� ���������, �������� "�������", ��� ������������� �����-�� ���� (��������, ���������� ����������), ������� ������ ��������� ����� ���������*. ��� ���� ����� ���������������� ������������-����������� �������� � Perl, ����� ����� ����� ��������. ����� ����������� ����������� ������� Perl ��� ��������� ����� ������� ����� �������� ��������� ������������. ����� �������� ������������ �� man-�������� signal(2), � �����, ��� �������, � ������������ �-����� /usr/include/sys/signal.h. ��� ����� ������ ���������� � ���� sig, �������� sigint, sigquit � sigkill. ����� �������� ������������ my_sigint_catcher () ������������ ������� sigint, �� ������ ���������� ��������������� �������� � ����������� ���� %sig. � ���� ���� � �������� �������� ����� int (��� sigint ��� sig) ������� ������� ��� ������������, ������� ����� ������������� ������ sigint: $SIG{'INT'} � 'my_sigint_catcher'; �� ��� ����������� ����� ����������� ���� ������������. ��� ������ �������� �����������: sub my_sigint_catcher ( $saw_sigint = 1; # ���������� ���� } ������ ����������� �������� ������������� ���������� ���������� � ����� �� ���������� ����������. ���������� ��������� ������������ � ��� �������, � ������� ��� ���� ��������. ������ ������� ���������� ���� $saw_sigint, ��������������� ������������ ������������ ��� ����������� ������� sigint, � ����� ������� ��� �������� ���������, ��������: $saw_sigint = 0; # �������� ���� $SIG{'INT') = 'my_sigint_catcher'; # ���������������� ����������� foreach (@huge_array) ( # ���-������ ������� t ��� ���-������ ������� # � ��� ���-������ if ($saw_sigint) ( # ���������� �����? t ����� "�������" last; } } $SIG('INT'} = 'DEFAULT'; # ������������ �������� �� ��������� * ������� ���������� �������� ����� �������, ��� �������������, ��������� �����, �������� ��������; ����������� ���������� ���������� Perl "�� �����", ����� �� ����-���� ������������ � �������� ��������� � �� ������������. ���� ��������� ������-���� ���� ����� "�� �����". ����������� ������������� ������� � ������ ��������� ��������� ������� ���, ��� �������� ����� ����������� � ��������� ������ �������� ���������� � ������������ ��� ���������������� ������ �� �����; ��� ���� ����������� � ����������� "�������". �������� �������� �� ������-��� �������� � ����������� ���� ����: ��������� �������� � �������� default ��������������� �������� ����������� ������� �� ��������� (��������� ������ sigint ���������� ������� ���������� ���������). ��� ���� �������� ����������� �������� ����� ����� � ignore, �.�. "������������ ������" (���� �������� �� ��������� � �� ������������ ������, ���� sigint). ��� ������� ����� ���������� �������� ignore, ���� �� ����� ��������� ������� "�������" � �� �� ������ �������������� ��������� ���������� �������� ���������. ���� �� �������� ������������� ������� sigint � ��������� ������������ ������ �� ���������� ��������� ��������������� ���������� ������� (��-������, [Ctrl+C]). ������� ���� ����� ������������ ������ sigint, ��������� ��� ����� ������� kill. ������ ������� �������� ����� ��� ��� ������� � �������� ��������������� ������ � �������� (������������ ������������-����) �������� ������, ���������� ����� �������. �������������, ��� �������� ������� �� ��������� ���������� ���������� �������������� ���������-��-���������. (�������������� ��������� ������������ ���������� �������-��, �������� �������� fork, � ��� ��������� ��������� ��� ����������� ����� �������� open). �����������, �� ������ ������� ������ 2 (��������� ����� ��� sigint) � �������� 234 � 237. ��� �������� ����� ������: kill(2,234,237); # ������� SIGINT � 234 � 237 kill ('INT', 234, 237); # �� �� ����� ����� �������� ������� ��������� �������� ������� � ����� 6 ����� Programming Perl � �� man-�������� perlipc(l). ���������� ������ � ����������� ��. � ���������� �. �������� ���������, ������� �������� ��������� ������� date � �����-���� ������� ���� ������. ���� ���� ������ � ������� ����, �������� get to work, � ��������� ������ �������� go play. �������� ���������, ������� �������� ��� �������� ����� ������������� �� ����� /etc/passwd, � ����� �������������� ��������� ������� who, ������� ��������������� ��� (������ �������) �������� ������. (�����: �������� ���, ��� ���� � ��������������� ���, � �������� � �������� ���.) ���������� ��������� ��� ������ � �������������� ������� who ��� � �������� ��������, ��� � ��������� ��� �����. ��� �����? ������������� ���������� ��������� ���, ����� �� ��������� ��������-����� �������� �� �������. (���� � ��� ���������� � ��������, ��, ��������, �� ������ ������� ������ ���� ��������� ����������� �����.) �����������, ������� mkdir ��������� ��������. �������� ������-������, ������� �� ���������� mkdir, � �������� /bin/mkdir c ����-��� ������� system. (��������� � ���, ��� ��� �������� � ����������, � ������ ������� ���� ������.) ��������� ��������� �� ����������� ���������� ���, ����� � ��� ��������������� ����� ������� (� ������� ������� chmod). |