home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 10 / AU_CD10.iso / Updates / Perl / Docs / !PerlDocs / Chapter20 / Text
Unknown  |  1997-07-17  |  85.6 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| f8 55 01 00 01 00 00 00 | 00 00 00 00 06 08 00 00 |.U......|........|
|00000010| 00 08 00 00 01 10 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 10 00 00 02 18 00 00 | c8 00 00 00 00 00 00 00 |........|........|
|00000030| 07 30 c1 00 00 00 00 00 | 00 18 00 00 85 68 00 00 |.0......|.....h..|
|00000040| 02 a4 6d 07 40 25 ff ff | 60 73 ff ff d8 3b 00 00 |..m.@%..|`s...;..|
|00000050| 16 00 00 00 b0 fc 07 00 | 00 00 00 00 07 30 c1 00 |........|.....0..|
|00000060| 07 30 c1 00 07 30 c1 00 | 00 00 00 00 70 65 72 6c |.0...0..|....perl|
|00000070| 69 70 63 20 2d 20 50 65 | 72 6c 20 69 6e 74 65 72 |ipc - Pe|rl inter|
|00000080| 70 72 6f 63 65 73 73 20 | 63 6f 6d 6d 75 6e 69 63 |process |communic|
|00000090| 61 74 69 6f 6e 20 28 73 | 69 67 6e 61 6c 73 2c 20 |ation (s|ignals, |
|000000a0| 00 68 00 00 05 48 00 00 | 00 04 8c 06 80 c7 fe ff |.h...H..|........|
|000000b0| a0 15 ff ff d8 3b 00 00 | 66 69 66 6f 73 2c 20 70 |.....;..|fifos, p|
|000000c0| 69 70 65 73 2c 20 73 61 | 66 65 20 73 75 62 05 05 |ipes, sa|fe sub..|
|000000d0| 70 72 6f 63 65 73 73 65 | 73 2c 20 73 6f 63 6b 65 |processe|s, socke|
|000000e0| 74 73 2c 20 61 6e 64 20 | 00 48 00 00 a5 44 00 00 |ts, and |.H...D..|
|000000f0| 43 40 e6 01 c0 69 fe ff | e0 b7 fe ff d8 3b 00 00 |C@...i..|.....;..|
|00000100| 73 65 6d 61 70 68 6f 72 | 65 73 29 0d 08 00 00 eb |semaphor|es).....|
|00000110| 07 30 c1 00 00 00 00 00 | 07 37 00 00 08 74 82 00 |.0......|.7...t..|
|00000120| 08 74 82 00 00 00 00 00 | 05 00 00 00 00 44 00 00 |.t......|.....D..|
|00000130| a5 30 00 00 40 a2 5f 01 | 20 dd fd ff 70 23 fe ff |.0..@._.| ...p#..|
|00000140| 68 37 00 00 44 65 73 63 | 72 69 70 74 69 6f 6e 0d |h7..Desc|ription.|
|00000150| 08 61 73 69 08 75 82 00 | 00 00 00 00 00 30 00 00 |.asi.u..|.....0..|
|00000160| 05 84 00 00 00 50 84 07 | bf 84 fd ff 9f b3 fd ff |.....P..|........|
|00000170| 20 22 00 00 54 68 65 20 | 62 61 73 69 63 20 49 50 | "..The |basic IP|
|00000180| 43 20 66 61 63 69 6c 69 | 74 69 65 73 20 6f 66 20 |C facili|ties of |
|00000190| 50 65 72 6c 20 61 72 65 | 20 62 75 69 6c 74 20 6f |Perl are| built o|
|000001a0| 75 74 20 6f 66 20 74 68 | 65 20 67 6f 6f 64 20 6f |ut of th|e good o|
|000001b0| 6c 64 20 55 6e 69 78 20 | 73 69 67 6e 61 6c 73 2c |ld Unix |signals,|
|000001c0| 20 6e 61 6d 65 64 20 70 | 69 70 65 73 2c 20 70 69 | named p|ipes, pi|
|000001d0| 70 65 20 6f 70 65 6e 73 | 2c 20 74 68 65 20 00 00 |pe opens|, the ..|
|000001e0| 00 84 00 00 a5 84 00 00 | 40 d0 9e 06 98 4c fd ff |........|@....L..|
|000001f0| 78 7b fd ff 20 22 00 00 | 42 65 72 6b 65 6c 65 79 |x{.. "..|Berkeley|
|00000200| 20 73 6f 63 6b 65 74 20 | 72 6f 75 74 69 6e 65 73 | socket |routines|
|00000210| 2c 20 61 6e 64 20 53 79 | 73 56 20 49 50 43 20 63 |, and Sy|sV IPC c|
|00000220| 61 6c 6c 73 2e 20 20 45 | 61 63 68 20 69 73 20 75 |alls. E|ach is u|
|00000230| 73 65 64 20 69 6e 20 73 | 6c 69 67 68 74 6c 79 20 |sed in s|lightly |
|00000240| 64 69 66 66 65 72 65 6e | 74 20 73 69 74 75 61 74 |differen|t situat|
|00000250| 69 6f 6e 73 2e 0d 07 6c | 08 76 82 00 08 76 82 00 |ions...l|.v...v..|
|00000260| 00 00 00 00 00 84 00 00 | a5 2c 00 00 40 8e e6 00 |........|.,..@...|
|00000270| 51 c6 fc ff a1 0c fd ff | 68 37 00 00 53 69 67 6e |Q.......|h7..Sign|
|00000280| 61 6c 73 0d 08 61 6c 6c | 08 77 82 00 00 00 00 00 |als..all|.w......|
|00000290| 00 2c 00 00 05 80 00 00 | 00 28 94 07 f0 6d fc ff |.,......|.(...m..|
|000002a0| d0 9c fc ff 20 22 00 00 | 50 65 72 6c 20 75 73 65 |.... "..|Perl use|
|000002b0| 73 20 61 20 73 69 6d 70 | 6c 65 20 73 69 67 6e 61 |s a simp|le signa|
|000002c0| 6c 20 68 61 6e 64 6c 69 | 6e 67 20 6d 6f 64 65 6c |l handli|ng model|
|000002d0| 3a 20 74 68 65 20 25 53 | 49 47 20 68 61 73 68 20 |: the %S|IG hash |
|000002e0| 63 6f 6e 74 61 69 6e 73 | 20 6e 61 6d 65 73 20 6f |contains| names o|
|000002f0| 72 20 72 65 66 65 72 65 | 6e 63 65 73 20 6f 66 20 |r refere|nces of |
|00000300| 75 73 65 72 2d 69 6e 73 | 74 61 6c 6c 65 64 20 00 |user-ins|talled .|
|00000310| 00 80 00 00 05 80 00 00 | 00 8c 57 07 c9 35 fc ff |........|..W..5..|
|00000320| a9 64 fc ff 20 22 00 00 | 73 69 67 6e 61 6c 20 68 |.d.. "..|signal h|
|00000330| 61 6e 64 6c 65 72 73 2e | 20 20 54 68 65 73 65 20 |andlers.| These |
|00000340| 68 61 6e 64 6c 65 72 73 | 20 77 69 6c 6c 20 62 65 |handlers| will be|
|00000350| 20 63 61 6c 6c 65 64 20 | 77 69 74 68 20 61 6e 20 | called |with an |
|00000360| 61 72 67 75 6d 65 6e 74 | 20 77 68 69 63 68 20 69 |argument| which i|
|00000370| 73 20 74 68 65 20 6e 61 | 6d 65 20 6f 66 20 74 68 |s the na|me of th|
|00000380| 65 20 73 69 67 6e 61 6c | 20 74 68 61 74 20 00 00 |e signal| that ..|
|00000390| 00 80 00 00 05 88 00 00 | 00 28 d6 07 a2 fd fb ff |........|.(......|
|000003a0| 82 2c fc ff 20 22 00 00 | 74 72 69 67 67 65 72 65 |.,.. "..|triggere|
|000003b0| 64 20 69 74 2e 20 20 41 | 20 73 69 67 6e 61 6c 20 |d it. A| signal |
|000003c0| 6d 61 79 20 62 65 20 67 | 65 05 6e 65 72 61 74 65 |may be g|e.nerate|
|000003d0| 64 20 69 6e 74 65 6e 74 | 69 6f 6e 61 6c 6c 79 20 |d intent|ionally |
|000003e0| 66 72 6f 6d 20 61 20 70 | 61 72 74 69 63 75 6c 61 |from a p|articula|
|000003f0| 72 20 6b 65 79 62 6f 61 | 72 64 20 73 65 71 75 65 |r keyboa|rd seque|
|00000400| 6e 63 65 20 6c 69 6b 65 | 20 63 6f 6e 74 72 6f 6c |nce like| control|
|00000410| 2d 43 20 6f 72 20 00 00 | 00 88 00 00 05 84 00 00 |-C or ..|........|
|00000420| 00 10 af 07 7b c5 fb ff | 5b f4 fb ff 20 22 00 00 |....{...|[... "..|
|00000430| 63 6f 6e 74 72 6f 6c 2d | 5a 2c 20 73 65 6e 74 20 |control-|Z, sent |
|00000440| 74 6f 20 79 6f 75 20 66 | 72 6f 6d 20 61 6e 6f 74 |to you f|rom anot|
|00000450| 68 65 72 20 70 72 6f 63 | 65 73 73 2c 20 6f 72 20 |her proc|ess, or |
|00000460| 74 72 69 67 67 65 72 65 | 64 20 61 75 74 6f 6d 61 |triggere|d automa|
|00000470| 74 69 63 61 6c 6c 79 20 | 62 79 20 74 68 65 20 6b |tically |by the k|
|00000480| 65 72 6e 65 6c 20 77 68 | 65 6e 20 73 70 65 63 69 |ernel wh|en speci|
|00000490| 61 6c 20 65 76 65 6e 74 | 73 20 00 00 00 84 00 00 |al event|s ......|
|000004a0| 25 88 00 00 40 f4 82 07 | 54 8d fb ff 34 bc fb ff |%...@...|T...4...|
|000004b0| 20 22 00 00 74 72 61 6e | 73 70 69 72 65 2c 20 6c | "..tran|spire, l|
|000004c0| 69 6b 65 20 61 20 63 68 | 69 6c 64 20 70 72 6f 63 |ike a ch|ild proc|
|000004d0| 65 73 73 20 65 78 69 74 | 69 6e 67 2c 20 79 6f 75 |ess exit|ing, you|
|000004e0| 72 20 70 72 6f 63 65 73 | 73 20 72 75 6e 6e 69 6e |r proces|s runnin|
|000004f0| 67 20 6f 75 74 20 6f 66 | 20 73 74 61 63 6b 20 73 |g out of| stack s|
|00000500| 70 61 63 65 2c 20 6f 72 | 20 68 69 74 74 69 6e 67 |pace, or| hitting|
|00000510| 20 66 69 6c 65 20 73 69 | 7a 65 20 6c 69 6d 69 74 | file si|ze limit|
|00000520| 2e 0d 00 00 00 88 00 00 | 05 88 00 00 00 fc ad 07 |........|........|
|00000530| 7d 1e fb ff 5d 4d fb ff | 20 22 00 00 46 6f 72 20 |}...]M..| "..For |
|00000540| 65 78 61 6d 70 6c 65 2c | 20 74 6f 20 74 72 61 70 |example,| to trap|
|00000550| 20 61 6e 20 69 6e 74 65 | 72 72 75 70 74 20 73 69 | an inte|rrupt si|
|00000560| 67 6e 61 6c 2c 20 73 65 | 74 20 75 70 20 61 20 68 |gnal, se|t up a h|
|00000570| 61 6e 64 6c 65 72 20 6c | 69 6b 65 20 74 68 69 73 |andler l|ike this|
|00000580| 2e 20 44 6f 20 61 73 20 | 6c 69 74 74 6c 65 20 61 |. Do as |little a|
|00000590| 73 20 79 6f 75 20 70 6f | 73 73 69 62 6c 79 20 63 |s you po|ssibly c|
|000005a0| 61 6e 20 69 6e 20 79 6f | 75 72 20 00 00 88 00 00 |an in yo|ur .....|
|000005b0| 05 84 00 00 00 48 b9 07 | 56 e6 fa ff 36 15 fb ff |.....H..|V...6...|
|000005c0| 20 22 00 00 68 61 6e 64 | 6c 65 72 3b 20 6e 6f 74 | "..hand|ler; not|
|000005d0| 69 63 65 20 68 6f 77 20 | 61 6c 6c 20 77 65 20 64 |ice how |all we d|
|000005e0| 6f 20 69 73 20 73 65 74 | 20 61 20 67 6c 6f 62 61 |o is set| a globa|
|000005f0| 6c 20 76 61 72 69 61 62 | 6c 65 20 61 6e 64 20 74 |l variab|le and t|
|00000600| 68 65 6e 20 72 61 69 73 | 65 20 61 6e 20 65 78 63 |hen rais|e an exc|
|00000610| 65 70 74 69 6f 6e 2e 20 | 20 54 68 61 74 27 73 20 |eption. | That's |
|00000620| 62 65 63 61 75 73 65 20 | 6f 6e 20 6d 6f 73 74 20 |because |on most |
|00000630| 00 84 00 00 05 88 00 00 | 00 b8 be 07 2f ae fa ff |........|..../...|
|00000640| 0f dd fa ff 20 22 00 00 | 73 79 73 74 65 6d 73 2c |.... "..|systems,|
|00000650| 20 6c 69 62 72 61 72 69 | 65 73 20 61 72 65 20 6e | librari|es are n|
|00000660| 6f 74 20 72 65 2d 65 6e | 74 72 61 6e 74 3b 20 70 |ot re-en|trant; p|
|00000670| 61 72 74 69 63 75 6c 61 | 72 6c 79 2c 20 6d 65 6d |articula|rly, mem|
|00000680| 6f 72 79 20 61 6c 6c 6f | 63 61 74 69 6f 6e 20 61 |ory allo|cation a|
|00000690| 6e 64 20 49 2f 4f 20 72 | 6f 75 74 69 6e 65 73 20 |nd I/O r|outines |
|000006a0| 61 72 65 20 6e 6f 74 2e | 20 20 54 68 61 74 20 6d |are not.| That m|
|000006b0| 65 61 6e 73 20 00 00 00 | 00 88 00 00 85 98 00 00 |eans ...|........|
|000006c0| 00 c4 79 07 08 76 fa ff | e8 a4 fa ff 20 22 00 00 |..y..v..|.... "..|
|000006d0| 74 68 61 74 20 64 6f 69 | 6e 67 20 6e 65 61 72 6c |that doi|ng nearl|
|000006e0| 79 20 07 00 11 78 82 00 | 11 78 82 00 00 00 00 00 |y ...x..|.x......|
|000006f0| 61 6e 79 74 68 69 6e 67 | 08 7e 82 00 11 00 00 00 |anything|.~......|
|00000700| 00 00 00 00 20 69 6e 20 | 79 6f 75 72 20 68 61 6e |.... in |your han|
|00000710| 64 6c 65 72 20 63 6f 75 | 6c 64 20 69 6e 20 74 68 |dler cou|ld in th|
|00000720| 65 6f 72 79 20 74 72 69 | 67 67 65 72 20 61 20 6d |eory tri|gger a m|
|00000730| 65 6d 6f 72 79 20 66 61 | 75 6c 74 20 61 6e 64 20 |emory fa|ult and |
|00000740| 73 75 62 73 65 71 75 65 | 6e 74 20 63 6f 72 65 20 |subseque|nt core |
|00000750| 00 98 00 00 a5 40 00 00 | 40 80 76 00 e1 3d fa ff |.....@..|@.v..=..|
|00000760| c1 6c fa ff 20 22 00 00 | 64 75 6d 70 2e 0d 07 20 |.l.. "..|dump... |
|00000770| 12 79 82 00 12 79 82 00 | 00 00 00 00 07 65 76 65 |.y...y..|.....eve|
|00000780| 0c 7a 82 00 12 79 82 00 | 0c 7a 82 00 00 00 00 00 |.z...y..|.z......|
|00000790| 00 40 00 00 25 28 00 00 | 40 90 5f 01 da d6 f9 ff |.@..%(..|@._.....|
|000007a0| ea fd f9 ff 70 1a 00 00 | 73 75 62 20 63 61 74 63 |....p...|sub catc|
|000007b0| 68 5f 7a 61 70 20 7b 0d | 00 28 00 00 25 34 00 00 |h_zap {.|.(..%4..|
|000007c0| 40 80 32 02 fa a7 f9 ff | 0a cf f9 ff 70 1a 00 00 |@.2.....|....p...|
|000007d0| 20 20 20 20 6d 79 20 24 | 73 69 67 6e 61 6d 65 20 | my $|signame |
|000007e0| 3d 20 73 68 69 66 74 3b | 0d 00 00 00 00 34 00 00 |= shift;|.....4..|
|000007f0| 25 28 00 00 40 20 48 01 | 1a 79 f9 ff 2a a0 f9 ff |%(..@ H.|.y..*...|
|00000800| 70 1a 00 00 20 20 20 20 | 24 73 68 75 63 6b 73 2b |p... |$shucks+|
|00000810| 2b 3b 0d 00 00 28 00 00 | 25 44 00 00 40 f0 c0 03 |+;...(..|%D..@...|
|00000820| 3a 4a f9 ff 4a 71 f9 ff | 70 1a 00 00 20 20 20 20 |:J..Jq..|p... |
|00000830| 64 69 65 20 22 53 6f 6d | 65 62 6f 64 79 20 73 65 |die "Som|ebody se|
|00000840| 6e 74 20 6d 65 20 61 20 | 53 49 47 24 73 69 67 6e |nt me a |SIG$sign|
|00000850| 61 6d 65 22 3b 0d 00 00 | 00 44 00 00 25 1c 00 00 |ame";...|.D..%...|
|00000860| 40 70 17 00 5a 1b f9 ff | 6a 42 f9 ff 70 1a 00 00 |@p..Z...|jB..p...|
|00000870| 7d 0d 00 00 00 1c 00 00 | 25 4c 00 00 40 70 7c 04 |}.......|%L..@p|.|
|00000880| 7a ec f8 ff 8a 13 f9 ff | 70 1a 00 00 24 53 49 47 |z.......|p...$SIG|
|00000890| 7b 49 4e 54 7d 20 3d 20 | 27 63 61 74 63 68 5f 7a |{INT} = |'catch_z|
|000008a0| 61 70 27 3b 20 20 23 20 | 63 6f 75 6c 64 20 66 61 |ap'; # |could fa|
|000008b0| 69 6c 20 69 6e 20 6d 6f | 64 75 6c 65 73 0d 00 00 |il in mo|dules...|
|000008c0| 00 4c 00 00 a5 6c 00 00 | 40 f0 c0 03 9a bd f8 ff |.L...l..|@.......|
|000008d0| aa e4 f8 ff 70 1a 00 00 | 24 53 49 47 7b 49 4e 54 |....p...|$SIG{INT|
|000008e0| 7d 20 3d 20 5c 26 63 61 | 74 63 68 5f 7a 61 70 3b |} = \&ca|tch_zap;|
|000008f0| 20 20 23 20 62 65 73 74 | 20 73 74 72 61 74 65 67 | # best| strateg|
|00000900| 79 0d 08 00 0c 7b 82 00 | 12 79 82 00 00 00 00 00 |y....{..|.y......|
|00000910| 08 85 82 00 12 00 00 00 | 00 00 00 00 07 86 82 00 |........|........|
|00000920| 18 7c 82 00 18 7c 82 00 | 00 00 00 00 00 6c 00 00 |.|...|..|.....l..|
|00000930| a5 34 00 00 40 00 00 00 | 0a a9 f8 ff ca b5 f8 ff |.4..@...|........|
|00000940| 00 00 00 00 0d 08 61 6e | 18 7d 82 00 00 00 00 00 |......an|.}......|
|00000950| 07 20 77 65 14 7e 82 00 | 14 7e 82 00 00 00 00 00 |. we.~..|.~......|
|00000960| 00 34 00 00 85 a4 00 00 | 00 70 f4 07 3a 50 f8 ff |.4......|.p..:P..|
|00000970| 1a 7f f8 ff 20 22 00 00 | 54 68 65 20 6e 61 6d 65 |.... "..|The name|
|00000980| 73 20 6f 66 20 74 68 65 | 20 73 69 67 6e 61 6c 73 |s of the| signals|
|00000990| 20 61 72 65 20 74 68 65 | 20 6f 6e 65 73 20 6c 69 | are the| ones li|
|000009a0| 73 74 65 64 20 6f 75 74 | 20 62 79 20 07 20 3d 20 |sted out| by . = |
|000009b0| 0e 7f 82 00 14 7e 82 00 | 0e 7f 82 00 00 00 00 00 |.....~..|........|
|000009c0| 6b 69 6c 6c 20 2d 6c 08 | 0e 80 82 00 14 7e 82 00 |kill -l.|.....~..|
|000009d0| 00 00 00 00 20 6f 6e 20 | 79 6f 75 72 20 73 79 73 |.... on |your sys|
|000009e0| 74 65 6d 2c 20 6f 72 20 | 79 6f 75 20 63 61 6e 20 |tem, or |you can |
|000009f0| 72 65 74 72 69 65 76 65 | 20 74 68 65 6d 20 66 72 |retrieve| them fr|
|00000a00| 6f 6d 20 00 00 a4 00 00 | 05 7c 00 00 00 90 59 07 |om .....|.|....Y.|
|00000a10| 13 18 f8 ff f3 46 f8 ff | 20 22 00 00 74 68 65 20 |.....F..| "..the |
|00000a20| 43 6f 6e 66 69 67 20 6d | 6f 64 75 6c 65 2e 20 20 |Config m|odule. |
|00000a30| 53 65 74 20 75 70 20 61 | 6e 20 40 73 69 67 6e 61 |Set up a|n @signa|
|00000a40| 6d 65 20 6c 69 73 74 20 | 69 6e 64 65 78 65 64 20 |me list |indexed |
|00000a50| 62 79 20 6e 75 6d 62 65 | 72 20 74 6f 20 67 65 74 |by numbe|r to get|
|00000a60| 20 74 68 65 20 6e 61 6d | 65 20 61 6e 64 20 61 20 | the nam|e and a |
|00000a70| 25 73 69 67 6e 6f 20 74 | 61 62 6c 65 20 00 00 00 |%signo t|able ...|
|00000a80| 00 7c 00 00 a5 68 00 00 | 40 64 a2 02 ec df f7 ff |.|...h..|@d......|
|00000a90| cc 0e f8 ff 20 22 00 00 | 69 6e 64 65 78 65 64 20 |.... "..|indexed |
|00000aa0| 62 79 20 6e 61 6d 65 20 | 74 6f 20 67 65 74 20 74 |by name |to get t|
|00000ab0| 68 65 20 6e 75 6d 62 65 | 72 3a 0d 08 14 00 00 00 |he numbe|r:......|
|00000ac0| 00 00 00 00 07 65 20 50 | 12 81 82 00 12 81 82 00 |.....e P|........|
|00000ad0| 00 00 00 00 07 74 6f 20 | 0c 82 82 00 12 81 82 00 |.....to |........|
|00000ae0| 0c 82 82 00 00 00 00 00 | 00 68 00 00 25 24 00 00 |........|.h..%$..|
|00000af0| 40 d0 01 01 e5 78 f7 ff | f5 9f f7 ff 70 1a 00 00 |@....x..|....p...|
|00000b00| 75 73 65 20 43 6f 6e 66 | 69 67 3b 0d 00 24 00 00 |use Conf|ig;..$..|
|00000b10| 25 48 00 00 40 40 07 04 | 05 4a f7 ff 15 71 f7 ff |%H..@@..|.J...q..|
|00000b20| 70 1a 00 00 64 65 66 69 | 6e 65 64 20 24 43 6f 6e |p...defi|ned $Con|
|00000b30| 66 69 67 7b 73 69 67 5f | 6e 61 6d 65 7d 20 7c 7c |fig{sig_|name} |||
|00000b40| 20 64 69 65 20 22 4e 6f | 20 73 69 67 73 3f 22 3b | die "No| sigs?";|
|00000b50| 0d 00 00 00 00 48 00 00 | 25 48 00 00 40 90 4d 04 |.....H..|%H..@.M.|
|00000b60| 25 1b f7 ff 35 42 f7 ff | 70 1a 00 00 66 6f 72 65 |%...5B..|p...fore|
|00000b70| 61 63 68 20 24 6e 61 6d | 65 20 28 73 70 6c 69 74 |ach $nam|e (split|
|00000b80| 28 27 20 27 2c 20 24 43 | 6f 6e 66 69 67 7b 73 69 |(' ', $C|onfig{si|
|00000b90| 67 5f 6e 61 6d 65 7d 29 | 29 20 7b 0d 00 48 00 00 |g_name})|) {..H..|
|00000ba0| 25 30 00 00 40 10 1b 02 | 45 ec f6 ff 55 13 f7 ff |%0..@...|E...U...|
|00000bb0| 70 1a 00 00 20 20 20 20 | 24 73 69 67 6e 6f 7b 24 |p... |$signo{$|
|00000bc0| 6e 61 6d 65 7d 20 3d 20 | 24 69 3b 0d 00 30 00 00 |name} = |$i;..0..|
|00000bd0| 25 34 00 00 40 f0 49 02 | 65 bd f6 ff 75 e4 f6 ff |%4..@.I.|e...u...|
|00000be0| 70 1a 00 00 20 20 20 20 | 24 73 69 67 6e 61 6d 65 |p... |$signame|
|00000bf0| 5b 24 69 5d 20 3d 20 24 | 6e 61 6d 65 3b 0d 00 00 |[$i] = $|name;...|
|00000c00| 00 34 00 00 25 24 00 00 | 40 f0 d2 00 85 8e f6 ff |.4..%$..|@.......|
|00000c10| 95 b5 f6 ff 70 1a 00 00 | 20 20 20 20 24 69 2b 2b |....p...| $i++|
|00000c20| 3b 0d 00 00 00 24 00 00 | a5 44 00 00 40 70 17 00 |;....$..|.D..@p..|
|00000c30| a5 5f f6 ff b5 86 f6 ff | 70 1a 00 00 7d 0d 08 6f |._......|p...}..o|
|00000c40| 0c 83 82 00 12 81 82 00 | 00 00 00 00 08 20 62 6c |........|..... bl|
|00000c50| 12 00 00 00 00 00 00 00 | 07 90 82 00 18 84 82 00 |........|........|
|00000c60| 18 84 82 00 00 00 00 00 | 00 44 00 00 a5 34 00 00 |........|.D...4..|
|00000c70| 40 00 00 00 15 4b f6 ff | d5 57 f6 ff 00 00 00 00 |@....K..|.W......|
|00000c80| 0d 08 75 73 18 85 82 00 | 00 00 00 00 07 63 61 6c |..us....|.....cal|
|00000c90| 14 86 82 00 14 86 82 00 | 00 00 00 00 00 34 00 00 |........|.....4..|
|00000ca0| a5 8c 00 00 40 e0 6b 05 | 45 f2 f5 ff 25 21 f6 ff |....@.k.|E...%!..|
|00000cb0| 20 22 00 00 53 6f 20 74 | 6f 20 63 68 65 63 6b 20 | "..So t|o check |
|00000cc0| 77 68 65 74 68 65 72 20 | 73 69 67 6e 61 6c 20 31 |whether |signal 1|
|00000cd0| 37 20 61 6e 64 20 53 49 | 47 41 4c 52 4d 20 77 65 |7 and SI|GALRM we|
|00000ce0| 72 65 20 74 68 65 20 73 | 61 6d 65 2c 20 64 6f 20 |re the s|ame, do |
|00000cf0| 6a 75 73 74 20 74 68 69 | 73 3a 0d 08 14 00 00 00 |just thi|s:......|
|00000d00| 00 00 00 00 07 92 82 00 | 12 87 82 00 12 87 82 00 |........|........|
|00000d10| 00 00 00 00 07 00 00 00 | 0c 88 82 00 12 87 82 00 |........|........|
|00000d20| 0c 88 82 00 00 00 00 00 | 00 8c 00 00 25 40 00 00 |........|....%@..|
|00000d30| 40 c0 4b 03 3e 8b f5 ff | 4e b2 f5 ff 70 1a 00 00 |@.K.>...|N...p...|
|00000d40| 70 72 69 6e 74 20 22 73 | 69 67 6e 61 6c 20 23 31 |print "s|ignal #1|
|00000d50| 37 20 3d 20 24 73 69 67 | 6e 61 6d 65 5b 31 37 5d |7 = $sig|name[17]|
|00000d60| 5c 6e 22 3b 0d 00 00 00 | 00 40 00 00 25 2c 00 00 |\n";....|.@..%,..|
|00000d70| 40 50 bd 01 5e 5c f5 ff | 6e 83 f5 ff 70 1a 00 00 |@P..^\..|n...p...|
|00000d80| 69 66 20 28 24 73 69 67 | 6e 6f 7b 41 4c 52 4d 7d |if ($sig|no{ALRM}|
|00000d90| 29 20 7b 0d 00 2c 00 00 | 25 40 00 00 40 a0 7a 03 |) {..,..|%@..@.z.|
|00000da0| 7e 2d f5 ff 8e 54 f5 ff | 70 1a 00 00 20 20 20 20 |~-...T..|p... |
|00000db0| 70 72 69 6e 74 20 22 53 | 49 47 41 4c 52 4d 20 69 |print "S|IGALRM i|
|00000dc0| 73 20 24 73 69 67 6e 6f | 7b 41 4c 52 4d 7d 5c 6e |s $signo|{ALRM}\n|
|00000dd0| 22 3b 0d 00 00 40 00 00 | a5 44 00 00 40 70 17 00 |";...@..|.D..@p..|
|00000de0| 9e fe f4 ff ae 25 f5 ff | 70 1a 00 00 7d 0d 08 72 |.....%..|p...}..r|
|00000df0| 0c 89 82 00 12 87 82 00 | 00 00 00 00 08 72 6f 75 |........|.....rou|
|00000e00| 12 00 00 00 00 00 00 00 | 07 95 82 00 18 8a 82 00 |........|........|
|00000e10| 18 8a 82 00 00 00 00 00 | 00 44 00 00 a5 24 00 00 |........|.D...$..|
|00000e20| 40 00 00 00 0e ea f4 ff | ce f6 f4 ff 00 00 00 00 |@.......|........|
|00000e30| 0d 08 75 72 18 8b 82 00 | 00 00 00 00 00 24 00 00 |..ur....|.....$..|
|00000e40| 85 b0 00 00 00 c0 b0 07 | 3e 91 f4 ff 1e c0 f4 ff |........|>.......|
|00000e50| 20 22 00 00 59 6f 75 20 | 6d 61 79 20 61 6c 73 6f | "..You |may also|
|00000e60| 20 63 68 6f 6f 73 65 20 | 74 6f 20 61 73 73 69 67 | choose |to assig|
|00000e70| 6e 20 74 68 65 20 73 74 | 72 69 6e 67 73 20 07 6f |n the st|rings .o|
|00000e80| 0e 8c 82 00 0e 8c 82 00 | 00 00 00 00 27 49 47 4e |........|....'IGN|
|00000e90| 4f 52 45 27 08 52 45 27 | 0e 8d 82 00 00 00 00 00 |ORE'.RE'|........|
|00000ea0| 20 6f 72 20 07 50 20 3d | 0e 8e 82 00 0e 8e 82 00 | or .P =|........|
|00000eb0| 00 00 00 00 27 44 45 46 | 41 55 4c 54 27 08 69 74 |....'DEF|AULT'.it|
|00000ec0| 0e 8f 82 00 00 00 00 00 | 20 61 73 20 74 68 65 20 |........| as the |
|00000ed0| 68 61 6e 64 6c 65 72 2c | 20 69 6e 20 77 68 69 63 |handler,| in whic|
|00000ee0| 68 20 63 61 73 65 20 50 | 65 72 6c 20 00 b0 00 00 |h case P|erl ....|
|00000ef0| 05 88 00 00 00 5c d2 07 | 17 59 f4 ff f7 87 f4 ff |.....\..|.Y......|
|00000f00| 20 22 00 00 77 69 6c 6c | 20 74 72 79 20 74 6f 20 | "..will| try to |
|00000f10| 64 69 73 63 61 72 64 20 | 74 68 65 20 73 69 67 6e |discard |the sign|
|00000f20| 61 6c 20 6f 72 20 64 6f | 20 74 68 65 20 64 65 66 |al or do| the def|
|00000f30| 61 75 6c 74 20 74 68 69 | 6e 67 2e 20 20 53 6f 6d |ault thi|ng. Som|
|00000f40| 65 20 73 69 67 6e 61 6c | 73 20 63 61 6e 20 62 65 |e signal|s can be|
|00000f50| 20 6e 65 69 74 68 65 72 | 20 74 72 61 70 70 65 64 | neither| trapped|
|00000f60| 20 6e 6f 72 20 69 67 6e | 6f 72 65 64 2c 20 73 75 | nor ign|ored, su|
|00000f70| 63 68 20 00 00 88 00 00 | 05 84 00 00 00 38 de 07 |ch .....|.....8..|
|00000f80| f0 20 f4 ff d0 4f f4 ff | 20 22 00 00 61 73 20 74 |. ...O..| "..as t|
|00000f90| 68 65 20 4b 49 4c 4c 20 | 61 6e 64 20 53 54 4f 50 |he KILL |and STOP|
|00000fa0| 20 28 62 75 74 20 6e 6f | 74 20 74 68 65 20 54 53 | (but no|t the TS|
|00000fb0| 54 50 29 20 73 69 67 6e | 61 6c 73 2e 20 20 4f 6e |TP) sign|als. On|
|00000fc0| 65 20 73 74 72 61 74 65 | 67 79 20 66 6f 72 20 74 |e strate|gy for t|
|00000fd0| 65 6d 70 6f 72 61 72 69 | 6c 79 20 69 67 6e 6f 72 |emporari|ly ignor|
|00000fe0| 69 6e 67 20 73 69 67 6e | 61 6c 73 20 69 73 20 74 |ing sign|als is t|
|00000ff0| 6f 20 75 73 65 20 61 20 | 00 84 00 00 01 10 00 00 |o use a |........|
|00001000| 00 84 b9 07 00 00 00 00 | 00 10 00 00 02 14 00 00 |........|........|
|00001010| 64 02 00 00 00 00 00 00 | 00 00 00 00 00 14 00 00 |d.......|........|
|00001020| 05 90 00 00 00 84 b9 07 | cf 44 f2 ff af 73 f2 ff |........|.D...s..|
|00001030| 20 22 00 00 16 00 00 00 | b0 fc 07 00 00 00 00 00 | "......|........|
|00001040| 6c 6f 63 61 6c 28 29 20 | 73 74 61 74 65 6d 65 6e |local() |statemen|
|00001050| 74 2c 20 77 68 69 63 68 | 20 77 69 6c 6c 20 62 65 |t, which| will be|
|00001060| 20 61 75 74 6f 6d 61 74 | 69 63 61 6c 6c 79 20 72 | automat|ically r|
|00001070| 65 73 74 6f 72 65 64 20 | 6f 6e 63 65 20 79 6f 75 |estored |once you|
|00001080| 72 20 62 6c 6f 63 6b 20 | 69 73 20 65 78 69 74 65 |r block |is exite|
|00001090| 64 2e 20 20 28 52 65 6d | 65 6d 62 65 72 20 74 68 |d. (Rem|ember th|
|000010a0| 61 74 20 6c 6f 63 61 6c | 28 29 20 00 00 90 00 00 |at local|() .....|
|000010b0| a5 80 00 00 40 60 d1 04 | a8 0c f2 ff 88 3b f2 ff |....@`..|.....;..|
|000010c0| 20 22 00 00 76 61 6c 75 | 65 73 20 61 72 65 20 22 | "..valu|es are "|
|000010d0| 69 6e 68 65 72 69 74 65 | 64 22 20 62 79 20 66 75 |inherite|d" by fu|
|000010e0| 6e 63 74 69 6f 6e 73 20 | 63 61 6c 6c 65 64 20 66 |nctions |called f|
|000010f0| 72 6f 6d 20 77 69 74 68 | 69 6e 20 74 68 61 74 20 |rom with|in that |
|00001100| 62 6c 6f 63 6b 2e 29 0d | 07 2e 20 20 12 90 82 00 |block.).|.. ....|
|00001110| 12 90 82 00 00 00 00 00 | 07 74 20 6c 0c 91 82 00 |........|.t l....|
|00001120| 12 90 82 00 0c 91 82 00 | 00 00 00 00 00 80 00 00 |........|........|
|00001130| 25 28 00 00 40 20 48 01 | a1 a5 f1 ff b1 cc f1 ff |%(..@ H.|........|
|00001140| 70 1a 00 00 73 75 62 20 | 70 72 65 63 69 6f 75 73 |p...sub |precious|
|00001150| 20 7b 0d 00 00 28 00 00 | 25 38 00 00 40 90 d6 02 | {...(..|%8..@...|
|00001160| c1 76 f1 ff d1 9d f1 ff | 70 1a 00 00 20 20 20 20 |.v......|p... |
|00001170| 6c 6f 63 61 6c 20 24 53 | 49 47 7b 49 4e 54 7d 20 |local $S|IG{INT} |
|00001180| 3d 20 27 49 47 4e 4f 52 | 45 27 3b 0d 00 38 00 00 |= 'IGNOR|E';..8..|
|00001190| 25 30 00 00 40 c0 d4 01 | e1 47 f1 ff f1 6e f1 ff |%0..@...|.G...n..|
|000011a0| 70 1a 00 00 20 20 20 20 | 26 6d 6f 72 65 5f 66 75 |p... |&more_fu|
|000011b0| 6e 63 74 69 6f 6e 73 3b | 0d 00 00 00 00 30 00 00 |nctions;|.....0..|
|000011c0| 25 1c 00 00 40 70 17 00 | 01 19 f1 ff 11 40 f1 ff |%...@p..|.....@..|
|000011d0| 70 1a 00 00 7d 0d 00 00 | 00 1c 00 00 25 30 00 00 |p...}...|....%0..|
|000011e0| 40 c0 d4 01 21 ea f0 ff | 31 11 f1 ff 70 1a 00 00 |@...!...|1...p...|
|000011f0| 73 75 62 20 6d 6f 72 65 | 5f 66 75 6e 63 74 69 6f |sub more|_functio|
|00001200| 6e 73 20 7b 0d 00 00 00 | 00 30 00 00 25 44 00 00 |ns {....|.0..%D..|
|00001210| 40 60 d8 03 41 bb f0 ff | 51 e2 f0 ff 70 1a 00 00 |@`..A...|Q...p...|
|00001220| 20 20 20 20 23 20 69 6e | 74 65 72 72 75 70 74 73 | # in|terrupts|
|00001230| 20 73 74 69 6c 6c 20 69 | 67 6e 6f 72 65 64 2c 20 | still i|gnored, |
|00001240| 66 6f 72 20 6e 6f 77 2e | 2e 2e 0d 00 00 44 00 00 |for now.|.....D..|
|00001250| a5 44 00 00 40 70 17 00 | 61 8c f0 ff 71 b3 f0 ff |.D..@p..|a...q...|
|00001260| 70 1a 00 00 7d 0d 08 6e | 0c 92 82 00 12 90 82 00 |p...}..n|........|
|00001270| 00 00 00 00 08 6b 65 6e | 12 00 00 00 00 00 00 00 |.....ken|........|
|00001280| 07 73 2c 20 18 93 82 00 | 18 93 82 00 00 00 00 00 |.s, ....|........|
|00001290| 00 44 00 00 a5 34 00 00 | 40 00 00 00 d1 77 f0 ff |.D...4..|@....w..|
|000012a0| 91 84 f0 ff 00 00 00 00 | 0d 08 3b 0d 18 94 82 00 |........|..;.....|
|000012b0| 00 00 00 00 07 c0 d4 01 | 14 95 82 00 14 95 82 00 |........|........|
|000012c0| 00 00 00 00 00 34 00 00 | 05 84 00 00 00 98 c6 07 |.....4..|........|
|000012d0| 01 1f f0 ff e1 4d f0 ff | 20 22 00 00 53 65 6e 64 |.....M..| "..Send|
|000012e0| 69 6e 67 20 61 20 73 69 | 67 6e 61 6c 20 74 6f 20 |ing a si|gnal to |
|000012f0| 61 20 6e 65 67 61 74 69 | 76 65 20 70 72 6f 63 65 |a negati|ve proce|
|00001300| 73 73 20 49 44 20 6d 65 | 61 6e 73 20 74 68 61 74 |ss ID me|ans that|
|00001310| 20 79 6f 75 20 73 65 6e | 64 20 74 68 65 20 73 69 | you sen|d the si|
|00001320| 67 6e 61 6c 20 74 6f 20 | 74 68 65 20 65 6e 74 69 |gnal to |the enti|
|00001330| 72 65 20 55 6e 69 78 20 | 70 72 6f 63 65 73 73 2d |re Unix |process-|
|00001340| 67 72 6f 75 70 2e 20 20 | 00 84 00 00 85 a8 00 00 |group. |........|
|00001350| 00 8c cf 07 da e6 ef ff | ba 15 f0 ff 20 22 00 00 |........|.... "..|
|00001360| 54 68 69 73 20 63 6f 64 | 65 20 73 65 6e 64 20 61 |This cod|e send a|
|00001370| 20 68 61 6e 67 2d 75 70 | 20 73 69 67 6e 61 6c 20 | hang-up| signal |
|00001380| 74 6f 20 61 6c 6c 20 70 | 72 6f 63 65 73 73 65 73 |to all p|rocesses|
|00001390| 20 69 6e 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 | in the |current |
|000013a0| 70 72 6f 63 65 73 73 20 | 67 72 6f 75 70 20 07 74 |process |group .t|
|000013b0| 11 96 82 00 14 95 82 00 | 11 96 82 00 00 00 00 00 |........|........|
|000013c0| 65 78 63 65 70 74 20 66 | 6f 72 08 61 11 00 00 00 |except f|or.a....|
|000013d0| 14 95 82 00 00 00 00 00 | 20 74 68 65 20 63 75 72 |........| the cur|
|000013e0| 72 65 6e 74 20 70 72 6f | 63 65 73 73 20 00 00 00 |rent pro|cess ...|
|000013f0| 00 a8 00 00 a5 50 00 00 | 40 c8 6a 00 b3 ae ef ff |.....P..|@.j.....|
|00001400| 93 dd ef ff 20 22 00 00 | 69 74 73 65 6c 66 3a 0d |.... "..|itself:.|
|00001410| 08 45 52 3b 14 00 00 00 | 00 00 00 00 07 20 73 6f |.ER;....|..... so|
|00001420| 12 97 82 00 12 97 82 00 | 00 00 00 00 07 66 6f 72 |........|.....for|
|00001430| 0c 98 82 00 12 97 82 00 | 0c 98 82 00 00 00 00 00 |........|........|
|00001440| 00 50 00 00 25 1c 00 00 | 40 70 17 00 ac 47 ef ff |.P..%...|@p...G..|
|00001450| bc 6e ef ff 70 1a 00 00 | 7b 0d 00 00 00 1c 00 00 |.n..p...|{.......|
|00001460| 25 38 00 00 40 90 d6 02 | cc 18 ef ff dc 3f ef ff |%8..@...|.....?..|
|00001470| 70 1a 00 00 20 20 20 20 | 6c 6f 63 61 6c 20 24 53 |p... |local $S|
|00001480| 49 47 7b 48 55 50 7d 20 | 3d 20 27 49 47 4e 4f 52 |IG{HUP} |= 'IGNOR|
|00001490| 45 27 3b 0d 00 38 00 00 | 25 30 00 00 40 c0 d4 01 |E';..8..|%0..@...|
|000014a0| ec e9 ee ff fc 10 ef ff | 70 1a 00 00 20 20 20 20 |........|p... |
|000014b0| 6b 69 6c 6c 20 48 55 50 | 20 3d 3e 20 2d 24 24 3b |kill HUP| => -$$;|
|000014c0| 0d 00 00 00 00 30 00 00 | 25 44 00 00 40 f0 c0 03 |.....0..|%D..@...|
|000014d0| 0c bb ee ff 1c e2 ee ff | 70 1a 00 00 20 20 20 20 |........|p... |
|000014e0| 23 20 73 6e 61 7a 7a 79 | 20 77 72 69 74 69 6e 67 |# snazzy| writing|
|000014f0| 20 6f 66 3a 20 6b 69 6c | 6c 28 27 48 55 50 27 2c | of: kil|l('HUP',|
|00001500| 20 2d 24 24 29 0d 00 00 | 00 44 00 00 a5 44 00 00 | -$$)...|.D...D..|
|00001510| 40 70 17 00 2c 8c ee ff | 3c b3 ee ff 70 1a 00 00 |@p..,...|<...p...|
|00001520| 7d 0d 08 29 0c 99 82 00 | 12 97 82 00 00 00 00 00 |}..)....|........|
|00001530| 08 4b 69 64 12 00 00 00 | 00 00 00 00 07 63 68 69 |.Kid....|.....chi|
|00001540| 18 9a 82 00 18 9a 82 00 | 00 00 00 00 00 44 00 00 |........|.....D..|
|00001550| a5 24 00 00 40 00 00 00 | 9c 77 ee ff 5c 84 ee ff |.$..@...|.w..\...|
|00001560| 00 00 00 00 0d 08 50 45 | 18 9b 82 00 00 00 00 00 |......PE|........|
|00001570| 00 24 00 00 05 88 00 00 | 00 98 b4 07 cc 1e ee ff |.$......|........|
|00001580| ac 4d ee ff 20 22 00 00 | 41 6e 6f 74 68 65 72 20 |.M.. "..|Another |
|00001590| 69 6e 74 65 72 65 73 74 | 69 6e 67 20 73 69 67 6e |interest|ing sign|
|000015a0| 61 6c 20 74 6f 20 73 65 | 6e 64 20 69 73 20 73 69 |al to se|nd is si|
|000015b0| 67 6e 61 6c 20 6e 75 6d | 62 65 72 20 7a 65 72 6f |gnal num|ber zero|
|000015c0| 2e 20 20 54 68 69 73 20 | 64 6f 65 73 6e 27 74 20 |. This |doesn't |
|000015d0| 61 63 74 75 61 6c 6c 79 | 20 61 66 66 65 63 74 20 |actually| affect |
|000015e0| 61 6e 6f 74 68 65 72 20 | 70 72 6f 63 65 73 73 2c |another |process,|
|000015f0| 20 62 75 74 20 00 00 00 | 00 88 00 00 a5 74 00 00 | but ...|.....t..|
|00001600| 40 b0 21 04 a5 e6 ed ff | 85 15 ee ff 20 22 00 00 |@.!.....|.... "..|
|00001610| 69 6e 73 74 65 61 64 20 | 63 68 65 63 6b 73 20 77 |instead |checks w|
|00001620| 68 65 74 68 65 72 20 69 | 74 27 73 20 61 6c 69 76 |hether i|t's aliv|
|00001630| 65 20 6f 72 20 68 61 73 | 20 63 68 61 6e 67 65 64 |e or has| changed|
|00001640| 20 69 74 73 20 55 49 44 | 2e 0d 07 00 12 9c 82 00 | its UID|........|
|00001650| 12 9c 82 00 00 00 00 00 | 07 b4 82 00 0c 9d 82 00 |........|........|
|00001660| 12 9c 82 00 0c 9d 82 00 | 00 00 00 00 00 74 00 00 |........|.....t..|
|00001670| 25 38 00 00 40 b0 a7 02 | 9e 7f ed ff ae a6 ed ff |%8..@...|........|
|00001680| 70 1a 00 00 75 6e 6c 65 | 73 73 20 28 6b 69 6c 6c |p...unle|ss (kill|
|00001690| 20 30 20 3d 3e 20 24 6b | 69 64 5f 70 69 64 29 20 | 0 => $k|id_pid) |
|000016a0| 7b 0d 00 00 00 38 00 00 | 25 4c 00 00 40 70 7c 04 |{....8..|%L..@p|.|
|000016b0| be 50 ed ff ce 77 ed ff | 70 1a 00 00 20 20 20 20 |.P...w..|p... |
|000016c0| 77 61 72 6e 20 22 73 6f | 6d 65 74 68 69 6e 67 20 |warn "so|mething |
|000016d0| 77 69 63 6b 65 64 20 68 | 61 70 70 65 6e 65 64 20 |wicked h|appened |
|000016e0| 74 6f 20 24 6b 69 64 5f | 70 69 64 22 3b 0d 00 00 |to $kid_|pid";...|
|000016f0| 00 4c 00 00 a5 44 00 00 | 40 70 17 00 de 21 ed ff |.L...D..|@p...!..|
|00001700| ee 48 ed ff 70 1a 00 00 | 7d 0d 08 67 0c 9e 82 00 |.H..p...|}..g....|
|00001710| 12 9c 82 00 00 00 00 00 | 08 65 6e 20 12 00 00 00 |........|.en ....|
|00001720| 00 00 00 00 07 20 62 75 | 18 9f 82 00 18 9f 82 00 |..... bu|........|
|00001730| 00 00 00 00 00 44 00 00 | a5 34 00 00 40 00 00 00 |.....D..|.4..@...|
|00001740| 4e 0d ed ff 0e 1a ed ff | 00 00 00 00 0d 08 82 00 |N.......|........|
|00001750| 18 a0 82 00 00 00 00 00 | 07 76 61 6c 14 a1 82 00 |........|.val....|
|00001760| 14 a1 82 00 00 00 00 00 | 00 34 00 00 a5 94 00 00 |........|.4......|
|00001770| 40 30 e8 05 7e b4 ec ff | 5e e3 ec ff 20 22 00 00 |@0..~...|^... "..|
|00001780| 59 6f 75 20 6d 69 67 68 | 74 20 61 6c 73 6f 20 77 |You migh|t also w|
|00001790| 61 6e 74 20 74 6f 20 65 | 6d 70 6c 6f 79 20 61 6e |ant to e|mploy an|
|000017a0| 6f 6e 79 6d 6f 75 73 20 | 66 75 6e 63 74 69 6f 6e |onymous |function|
|000017b0| 73 20 66 6f 72 20 73 69 | 6d 70 6c 65 20 73 69 67 |s for si|mple sig|
|000017c0| 6e 61 6c 20 68 61 6e 64 | 6c 65 72 73 3a 0d 08 72 |nal hand|lers:..r|
|000017d0| 14 00 00 00 00 00 00 00 | 07 69 6e 20 12 a2 82 00 |........|.in ....|
|000017e0| 12 a2 82 00 00 00 00 00 | 07 65 73 2e 0c a3 82 00 |........|.es.....|
|000017f0| 12 a2 82 00 0c a3 82 00 | 00 00 00 00 00 94 00 00 |........|........|
|00001800| a5 6c 00 00 40 60 d8 03 | 77 4d ec ff 87 74 ec ff |.l..@`..|wM...t..|
|00001810| 70 1a 00 00 24 53 49 47 | 7b 49 4e 54 7d 20 3d 20 |p...$SIG|{INT} = |
|00001820| 73 75 62 20 7b 20 64 69 | 65 20 22 5c 6e 4f 75 74 |sub { di|e "\nOut|
|00001830| 74 61 20 68 65 72 65 21 | 5c 6e 22 20 7d 3b 0d 08 |ta here!|\n" };..|
|00001840| 0c a4 82 00 12 a2 82 00 | 00 00 00 00 08 24 53 49 |........|.....$SI|
|00001850| 12 00 00 00 00 00 00 00 | 07 20 73 75 18 a5 82 00 |........|. su....|
|00001860| 18 a5 82 00 00 00 00 00 | 00 6c 00 00 a5 34 00 00 |........|.l...4..|
|00001870| 40 00 00 00 e7 38 ec ff | a7 45 ec ff 00 00 00 00 |@....8..|.E......|
|00001880| 0d 08 6c 61 18 a6 82 00 | 00 00 00 00 07 20 20 66 |..la....|..... f|
|00001890| 14 a7 82 00 14 a7 82 00 | 00 00 00 00 00 34 00 00 |........|.....4..|
|000018a0| 05 84 00 00 00 64 c1 07 | 17 e0 eb ff f7 0e ec ff |.....d..|........|
|000018b0| 20 22 00 00 42 75 74 20 | 74 68 61 74 20 77 69 6c | "..But |that wil|
|000018c0| 6c 20 62 65 20 70 72 6f | 62 6c 65 6d 61 74 69 63 |l be pro|blematic|
|000018d0| 20 66 6f 72 20 74 68 65 | 20 6d 6f 72 65 20 63 6f | for the| more co|
|000018e0| 6d 70 6c 69 63 61 74 65 | 64 20 68 61 6e 64 6c 65 |mplicate|d handle|
|000018f0| 72 73 20 74 68 61 74 20 | 6e 65 65 64 20 74 6f 20 |rs that |need to |
|00001900| 72 65 69 6e 73 74 61 6c | 6c 20 74 68 65 6d 73 65 |reinstal|l themse|
|00001910| 6c 76 65 73 2e 20 20 42 | 65 63 61 75 73 65 20 00 |lves. B|ecause .|
|00001920| 00 84 00 00 05 84 00 00 | 00 50 de 07 f0 a7 eb ff |........|.P......|
|00001930| d0 d6 eb ff 20 22 00 00 | 50 65 72 6c 27 73 20 73 |.... "..|Perl's s|
|00001940| 69 67 6e 61 6c 20 6d 65 | 63 68 61 6e 69 73 6d 20 |ignal me|chanism |
|00001950| 69 73 20 63 75 72 72 65 | 6e 74 6c 79 20 62 61 73 |is curre|ntly bas|
|00001960| 65 64 20 6f 6e 20 74 68 | 65 20 73 69 67 6e 61 6c |ed on th|e signal|
|00001970| 28 33 29 20 66 75 6e 63 | 74 69 6f 6e 20 66 72 6f |(3) func|tion fro|
|00001980| 6d 20 74 68 65 20 43 20 | 6c 69 62 72 61 72 79 2c |m the C |library,|
|00001990| 20 79 6f 75 20 6d 61 79 | 20 73 6f 6d 65 74 69 6d | you may| sometim|
|000019a0| 65 73 20 00 00 84 00 00 | 05 80 00 00 00 54 53 07 |es .....|.....TS.|
|000019b0| c9 6f eb ff a9 9e eb ff | 20 22 00 00 62 65 20 73 |.o......| "..be s|
|000019c0| 6f 20 6d 69 73 66 6f 72 | 74 75 6e 61 74 65 20 61 |o misfor|tunate a|
|000019d0| 73 20 74 6f 20 72 75 6e | 20 6f 6e 20 73 79 73 74 |s to run| on syst|
|000019e0| 65 6d 73 20 77 68 65 72 | 65 20 74 68 61 74 20 66 |ems wher|e that f|
|000019f0| 75 6e 63 74 69 6f 6e 20 | 69 73 20 22 62 72 6f 6b |unction |is "brok|
|00001a00| 65 6e 22 2c 20 74 68 61 | 74 20 69 73 2c 20 69 74 |en", tha|t is, it|
|00001a10| 20 62 65 68 61 76 65 73 | 20 69 6e 20 74 68 65 20 | behaves| in the |
|00001a20| 6f 6c 64 20 00 80 00 00 | 05 7c 00 00 00 64 58 07 |old ....|.|...dX.|
|00001a30| a2 37 eb ff 82 66 eb ff | 20 22 00 00 75 6e 72 65 |.7...f..| "..unre|
|00001a40| 6c 69 61 62 6c 65 20 53 | 79 73 56 20 77 61 79 20 |liable S|ysV way |
|00001a50| 72 61 74 68 65 72 20 74 | 68 61 6e 20 74 68 65 20 |rather t|han the |
|00001a60| 6e 65 77 65 72 2c 20 6d | 6f 72 65 20 72 65 61 73 |newer, m|ore reas|
|00001a70| 6f 6e 61 62 6c 65 20 42 | 53 44 20 61 6e 64 20 50 |onable B|SD and P|
|00001a80| 4f 53 49 58 20 66 61 73 | 68 69 6f 6e 2e 20 20 53 |OSIX fas|hion. S|
|00001a90| 6f 20 79 6f 75 27 6c 6c | 20 73 65 65 20 00 00 00 |o you'll| see ...|
|00001aa0| 00 7c 00 00 a5 7c 00 00 | 40 34 a4 03 7b ff ea ff |.|...|..|@4..{...|
|00001ab0| 5b 2e eb ff 20 22 00 00 | 64 65 66 65 6e 73 69 76 |[... "..|defensiv|
|00001ac0| 65 20 70 65 6f 70 6c 65 | 20 77 72 69 74 69 6e 67 |e people| writing|
|00001ad0| 20 73 69 67 6e 61 6c 20 | 68 61 6e 64 6c 65 72 73 | signal |handlers|
|00001ae0| 20 6c 69 6b 65 20 74 68 | 69 73 3a 0d 08 69 70 65 | like th|is:..ipe|
|00001af0| 14 00 00 00 00 00 00 00 | 07 20 74 68 12 a8 82 00 |........|. th....|
|00001b00| 12 a8 82 00 00 00 00 00 | 07 73 65 73 0c a9 82 00 |........|.ses....|
|00001b10| 12 a8 82 00 0c a9 82 00 | 00 00 00 00 00 7c 00 00 |........|.....|..|
|00001b20| 25 28 00 00 40 40 19 01 | 74 98 ea ff 84 bf ea ff |%(..@@..|t.......|
|00001b30| 70 1a 00 00 73 75 62 20 | 52 45 41 50 45 52 20 7b |p...sub |REAPER {|
|00001b40| 0d 00 00 00 00 28 00 00 | 25 30 00 00 40 a0 03 02 |.....(..|%0..@...|
|00001b50| 94 69 ea ff a4 90 ea ff | 70 1a 00 00 20 20 20 20 |.i......|p... |
|00001b60| 24 77 61 69 74 65 64 70 | 69 64 20 3d 20 77 61 69 |$waitedp|id = wai|
|00001b70| 74 3b 0d 00 00 30 00 00 | 25 4c 00 00 40 70 7c 04 |t;...0..|%L..@p|.|
|00001b80| b4 3a ea ff c4 61 ea ff | 70 1a 00 00 20 20 20 20 |.:...a..|p... |
|00001b90| 23 20 6c 6f 61 74 68 65 | 20 73 79 73 56 3a 20 69 |# loathe| sysV: i|
|00001ba0| 74 20 6d 61 6b 65 73 20 | 75 73 20 6e 6f 74 20 6f |t makes |us not o|
|00001bb0| 6e 6c 79 20 72 65 69 6e | 73 74 61 74 65 0d 00 00 |nly rein|state...|
|00001bc0| 00 4c 00 00 25 48 00 00 | 40 20 36 04 d4 0b ea ff |.L..%H..|@ 6.....|
|00001bd0| e4 32 ea ff 70 1a 00 00 | 20 20 20 20 23 20 74 68 |.2..p...| # th|
|00001be0| 65 20 68 61 6e 64 6c 65 | 72 2c 20 62 75 74 20 70 |e handle|r, but p|
|00001bf0| 6c 61 63 65 20 69 74 20 | 61 66 74 65 72 20 74 68 |lace it |after th|
|00001c00| 65 20 77 61 69 74 0d 00 | 00 48 00 00 25 34 00 00 |e wait..|.H..%4..|
|00001c10| 40 60 61 02 f4 dc e9 ff | 04 04 ea ff 70 1a 00 00 |@`a.....|....p...|
|00001c20| 20 20 20 20 24 53 49 47 | 7b 43 48 4c 44 7d 20 3d | $SIG|{CHLD} =|
|00001c30| 20 5c 26 52 45 41 50 45 | 52 3b 0d 00 00 34 00 00 | \&REAPE|R;...4..|
|00001c40| 25 1c 00 00 40 70 17 00 | 14 ae e9 ff 24 d5 e9 ff |%...@p..|....$...|
|00001c50| 70 1a 00 00 7d 0d 00 00 | 00 1c 00 00 25 30 00 00 |p...}...|....%0..|
|00001c60| 40 a0 03 02 34 7f e9 ff | 44 a6 e9 ff 70 1a 00 00 |@...4...|D...p...|
|00001c70| 24 53 49 47 7b 43 48 4c | 44 7d 20 3d 20 5c 26 52 |$SIG{CHL|D} = \&R|
|00001c80| 45 41 50 45 52 3b 0d 00 | 00 30 00 00 a5 64 00 00 |EAPER;..|.0...d..|
|00001c90| 40 00 ee 02 54 50 e9 ff | 64 77 e9 ff 70 1a 00 00 |@...TP..|dw..p...|
|00001ca0| 23 20 6e 6f 77 20 64 6f | 20 73 6f 6d 65 74 68 69 |# now do| somethi|
|00001cb0| 6e 67 20 74 68 61 74 20 | 66 6f 72 6b 73 2e 2e 2e |ng that |forks...|
|00001cc0| 0d 08 00 00 0c aa 82 00 | 12 a8 82 00 00 00 00 00 |........|........|
|00001cd0| 08 00 00 00 12 00 00 00 | 00 00 00 00 07 00 00 00 |........|........|
|00001ce0| 18 ab 82 00 18 ab 82 00 | 00 00 00 00 00 64 00 00 |........|.....d..|
|00001cf0| a5 34 00 00 40 00 00 00 | c4 3b e9 ff 84 48 e9 ff |.4..@...|.;...H..|
|00001d00| 00 00 00 00 0d 08 6c 65 | 18 ac 82 00 00 00 00 00 |......le|........|
|00001d10| 07 61 63 65 14 ad 82 00 | 14 ad 82 00 00 00 00 00 |.ace....|........|
|00001d20| 00 34 00 00 01 10 00 00 | 41 dc 00 02 00 00 00 00 |.4......|A.......|
|00001d30| 00 10 00 00 02 18 00 00 | 00 04 00 00 00 00 00 00 |........|........|
|00001d40| 14 ad 82 00 00 00 00 00 | 00 18 00 00 a5 70 00 00 |........|.....p..|
|00001d50| 40 dc 00 02 1e 45 e5 ff | fe 73 e5 ff 20 22 00 00 |@....E..|.s.. "..|
|00001d60| 16 00 00 00 b0 fc 07 00 | 00 00 00 00 6f 72 20 65 |........|....or e|
|00001d70| 76 65 6e 20 74 68 65 20 | 6d 6f 72 65 20 65 6c 61 |ven the |more ela|
|00001d80| 62 6f 72 61 74 65 3a 0d | 08 34 00 00 14 00 00 00 |borate:.|.4......|
|00001d90| 00 00 00 00 07 00 00 00 | 12 ae 82 00 12 ae 82 00 |........|........|
|00001da0| 00 00 00 00 07 20 22 3a | 0c af 82 00 12 ae 82 00 |..... ":|........|
|00001db0| 0c af 82 00 00 00 00 00 | 00 70 00 00 25 34 00 00 |........|.p..%4..|
|00001dc0| 40 80 32 02 17 de e4 ff | 27 05 e5 ff 70 1a 00 00 |@.2.....|'...p...|
|00001dd0| 75 73 65 20 50 4f 53 49 | 58 20 22 3a 73 79 73 5f |use POSI|X ":sys_|
|00001de0| 77 61 69 74 5f 68 22 3b | 0d 00 00 00 00 34 00 00 |wait_h";|.....4..|
|00001df0| 25 28 00 00 41 40 19 01 | 37 af e4 ff 47 d6 e4 ff |%(..A@..|7...G...|
|00001e00| 70 1a 00 00 73 75 62 20 | 52 45 41 50 45 52 20 7b |p...sub |REAPER {|
|00001e10| 0d 00 00 00 00 28 00 00 | 25 28 00 00 41 20 48 01 |.....(..|%(..A H.|
|00001e20| 57 80 e4 ff 67 a7 e4 ff | 70 1a 00 00 20 20 20 20 |W...g...|p... |
|00001e30| 6d 79 20 24 63 68 69 6c | 64 3b 0d 00 00 28 00 00 |my $chil|d;...(..|
|00001e40| 25 44 00 00 41 60 d8 03 | 77 51 e4 ff 87 78 e4 ff |%D..A`..|wQ...x..|
|00001e50| 70 1a 00 00 20 20 20 20 | 77 68 69 6c 65 20 28 24 |p... |while ($|
|00001e60| 63 68 69 6c 64 20 3d 20 | 77 61 69 74 70 69 64 28 |child = |waitpid(|
|00001e70| 2d 31 2c 57 4e 4f 48 41 | 4e 47 29 29 20 7b 0d 00 |-1,WNOHA|NG)) {..|
|00001e80| 00 44 00 00 25 3c 00 00 | 41 70 05 03 97 22 e4 ff |.D..%<..|Ap..."..|
|00001e90| a7 49 e4 ff 70 1a 00 00 | 20 20 20 20 20 20 20 20 |.I..p...| |
|00001ea0| 24 4b 69 64 5f 53 74 61 | 74 75 73 7b 24 63 68 69 |$Kid_Sta|tus{$chi|
|00001eb0| 6c 64 7d 20 3d 20 24 3f | 3b 0d 00 00 00 3c 00 00 |ld} = $?|;....<..|
|00001ec0| 25 20 00 00 41 30 75 00 | b7 f3 e3 ff c7 1a e4 ff |% ..A0u.|........|
|00001ed0| 70 1a 00 00 20 20 20 20 | 7d 0d 00 00 00 20 00 00 |p... |}.... ..|
|00001ee0| 25 48 00 00 41 90 4d 04 | d7 c4 e3 ff e7 eb e3 ff |%H..A.M.|........|
|00001ef0| 70 1a 00 00 20 20 20 20 | 24 53 49 47 7b 43 48 4c |p... |$SIG{CHL|
|00001f00| 44 7d 20 3d 20 5c 26 52 | 45 41 50 45 52 3b 20 20 |D} = \&R|EAPER; |
|00001f10| 23 20 73 74 69 6c 6c 20 | 6c 6f 61 74 68 65 20 73 |# still |loathe s|
|00001f20| 79 73 56 0d 00 48 00 00 | 25 1c 00 00 40 70 17 00 |ysV..H..|%...@p..|
|00001f30| f7 95 e3 ff 07 bd e3 ff | 70 1a 00 00 7d 0d 00 00 |........|p...}...|
|00001f40| 00 1c 00 00 25 30 00 00 | 40 a0 03 02 17 67 e3 ff |....%0..|@....g..|
|00001f50| 27 8e e3 ff 70 1a 00 00 | 24 53 49 47 7b 43 48 4c |'...p...|$SIG{CHL|
|00001f60| 44 7d 20 3d 20 5c 26 52 | 45 41 50 45 52 3b 0d 00 |D} = \&R|EAPER;..|
|00001f70| 00 30 00 00 a5 60 00 00 | 40 40 90 02 37 38 e3 ff |.0...`..|@@..78..|
|00001f80| 47 5f e3 ff 70 1a 00 00 | 23 20 64 6f 20 73 6f 6d |G_..p...|# do som|
|00001f90| 65 74 68 69 6e 67 20 74 | 68 61 74 20 66 6f 72 6b |ething t|hat fork|
|00001fa0| 73 2e 2e 2e 0d 08 69 65 | 0c b0 82 00 12 ae 82 00 |s.....ie|........|
|00001fb0| 00 00 00 00 08 65 20 62 | 12 00 00 00 00 00 00 00 |.....e b|........|
|00001fc0| 07 70 72 69 18 b1 82 00 | 18 b1 82 00 00 00 00 00 |.pri....|........|
|00001fd0| 00 60 00 00 a5 24 00 00 | 40 00 00 00 a7 23 e3 ff |.`...$..|@....#..|
|00001fe0| 67 30 e3 ff 00 00 00 00 | 0d 08 0d 00 18 b2 82 00 |g0......|........|
|00001ff0| 00 00 00 00 00 24 00 00 | 85 9c 00 00 00 78 ec 07 |.....$..|.....x..|
|00002000| d7 ca e2 ff b7 f9 e2 ff | 20 22 00 00 53 69 67 6e |........| "..Sign|
|00002010| 61 6c 20 68 61 6e 64 6c | 69 6e 67 20 69 73 20 61 |al handl|ing is a|
|00002020| 6c 73 6f 20 75 73 65 64 | 20 66 6f 72 20 74 69 6d |lso used| for tim|
|00002030| 65 6f 75 74 73 20 69 6e | 20 55 6e 69 78 2c 20 20 |eouts in| Unix, |
|00002040| 20 57 68 69 6c 65 20 73 | 61 66 65 6c 79 20 70 72 | While s|afely pr|
|00002050| 6f 74 65 63 74 65 64 20 | 77 69 74 68 69 6e 20 61 |otected |within a|
|00002060| 6e 20 07 f0 0e b3 82 00 | 0e b3 82 00 00 00 00 00 |n ......|........|
|00002070| 65 76 61 6c 7b 7d 08 00 | 0e b4 82 00 00 00 00 00 |eval{}..|........|
|00002080| 20 62 6c 6f 63 6b 2c 20 | 79 6f 75 20 73 65 74 20 | block, |you set |
|00002090| 00 9c 00 00 05 80 00 00 | 00 4c 9a 07 b0 92 e2 ff |........|.L......|
|000020a0| 90 c1 e2 ff 20 22 00 00 | 61 20 73 69 67 6e 61 6c |.... "..|a signal|
|000020b0| 20 68 61 6e 64 6c 65 72 | 20 74 6f 20 74 72 61 70 | handler| to trap|
|000020c0| 20 61 6c 61 72 6d 20 73 | 69 67 6e 61 6c 73 20 61 | alarm s|ignals a|
|000020d0| 6e 64 20 74 68 65 6e 20 | 73 63 68 65 64 75 6c 65 |nd then |schedule|
|000020e0| 20 74 6f 20 68 61 76 65 | 20 6f 6e 65 20 64 65 6c | to have| one del|
|000020f0| 69 76 65 72 65 64 20 74 | 6f 20 79 6f 75 20 69 6e |ivered t|o you in|
|00002100| 20 73 6f 6d 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 | some nu|mber of |
|00002110| 00 80 00 00 05 84 00 00 | 00 24 bf 07 89 5a e2 ff |........|.$...Z..|
|00002120| 69 89 e2 ff 20 22 00 00 | 73 65 63 6f 6e 64 73 2e |i... "..|seconds.|
|00002130| 20 20 54 68 65 6e 20 74 | 72 79 20 79 6f 75 72 20 | Then t|ry your |
|00002140| 62 6c 6f 63 6b 69 6e 67 | 20 6f 70 65 72 61 74 69 |blocking| operati|
|00002150| 6f 6e 2c 20 63 6c 65 61 | 72 69 6e 67 20 74 68 65 |on, clea|ring the|
|00002160| 20 61 6c 61 72 6d 20 77 | 68 65 6e 20 69 74 27 73 | alarm w|hen it's|
|00002170| 20 64 6f 6e 65 20 62 75 | 74 20 6e 6f 74 20 62 65 | done bu|t not be|
|00002180| 66 6f 72 65 20 79 6f 75 | 27 76 65 20 65 78 69 74 |fore you|'ve exit|
|00002190| 65 64 20 00 00 84 00 00 | 85 98 00 00 00 a0 76 07 |ed .....|......v.|
|000021a0| 62 22 e2 ff 42 51 e2 ff | 20 22 00 00 79 6f 75 72 |b"..BQ..| "..your|
|000021b0| 20 07 00 00 0e b5 82 00 | 0e b5 82 00 00 00 00 00 | .......|........|
|000021c0| 65 76 61 6c 7b 7d 08 74 | 0e b6 82 00 00 00 00 00 |eval{}.t|........|
|000021d0| 20 62 6c 6f 63 6b 2e 20 | 20 49 66 20 69 74 20 67 | block. | If it g|
|000021e0| 6f 65 73 20 6f 66 66 2c | 20 79 6f 75 27 6c 6c 20 |oes off,| you'll |
|000021f0| 75 73 65 20 64 69 65 28 | 29 20 74 6f 20 6a 75 6d |use die(|) to jum|
|00002200| 70 20 6f 75 74 20 6f 66 | 20 74 68 65 20 62 6c 6f |p out of| the blo|
|00002210| 63 6b 2c 20 6d 75 63 68 | 20 61 73 20 79 6f 75 20 |ck, much| as you |
|00002220| 6d 69 67 68 74 20 75 73 | 69 6e 67 20 00 98 00 00 |might us|ing ....|
|00002230| a5 50 00 00 40 b0 f5 02 | 3b ea e1 ff 1b 19 e2 ff |.P..@...|;.......|
|00002240| 20 22 00 00 6c 6f 6e 67 | 6a 6d 70 28 29 20 6f 72 | "..long|jmp() or|
|00002250| 20 74 68 72 6f 77 28 29 | 20 69 6e 20 6f 74 68 65 | throw()| in othe|
|00002260| 72 20 6c 61 6e 67 75 61 | 67 65 73 2e 0d 07 82 00 |r langua|ges.....|
|00002270| 14 b7 82 00 14 b7 82 00 | 00 00 00 00 00 50 00 00 |........|.....P..|
|00002280| a5 58 00 00 40 48 65 01 | 64 7b e1 ff 44 aa e1 ff |.X..@He.|d{..D...|
|00002290| 20 22 00 00 48 65 72 65 | 27 73 20 61 6e 20 65 78 | "..Here|'s an ex|
|000022a0| 61 6d 70 6c 65 3a 0d 08 | 14 00 00 00 00 00 00 00 |ample:..|........|
|000022b0| 07 e7 82 00 12 b8 82 00 | 12 b8 82 00 00 00 00 00 |........|........|
|000022c0| 07 00 00 00 0c b9 82 00 | 12 b8 82 00 0c b9 82 00 |........|........|
|000022d0| 00 00 00 00 00 58 00 00 | 25 20 00 00 40 a0 8c 00 |.....X..|% ..@...|
|000022e0| 5d 14 e1 ff 6d 3b e1 ff | 70 1a 00 00 65 76 61 6c |]...m;..|p...eval|
|000022f0| 20 7b 0d 00 00 20 00 00 | 25 54 00 00 40 f0 37 05 | {... ..|%T..@.7.|
|00002300| 7d e5 e0 ff 8d 0c e1 ff | 70 1a 00 00 20 20 20 20 |}.......|p... |
|00002310| 6c 6f 63 61 6c 20 24 53 | 49 47 7b 41 4c 52 4d 7d |local $S|IG{ALRM}|
|00002320| 20 3d 20 73 75 62 20 7b | 20 64 69 65 20 22 61 6c | = sub {| die "al|
|00002330| 61 72 6d 20 63 6c 6f 63 | 6b 20 72 65 73 74 61 72 |arm cloc|k restar|
|00002340| 74 22 20 7d 3b 0d 00 00 | 00 54 00 00 25 28 00 00 |t" };...|.T..%(..|
|00002350| 40 b0 30 01 9d b6 e0 ff | ad dd e0 ff 70 1a 00 00 |@.0.....|....p...|
|00002360| 20 20 20 20 61 6c 61 72 | 6d 20 31 30 3b 0d 00 00 | alar|m 10;...|
|00002370| 00 28 00 00 25 44 00 00 | 40 f0 c0 03 bd 87 e0 ff |.(..%D..|@.......|
|00002380| cd ae e0 ff 70 1a 00 00 | 20 20 20 20 66 6c 6f 63 |....p...| floc|
|00002390| 6b 28 46 48 2c 20 32 29 | 3b 20 20 20 23 20 62 6c |k(FH, 2)|; # bl|
|000023a0| 6f 63 6b 69 6e 67 20 77 | 72 69 74 65 20 6c 6f 63 |ocking w|rite loc|
|000023b0| 6b 0d 00 00 00 44 00 00 | 25 28 00 00 40 40 19 01 |k....D..|%(..@@..|
|000023c0| dd 58 e0 ff ed 7f e0 ff | 70 1a 00 00 20 20 20 20 |.X......|p... |
|000023d0| 61 6c 61 72 6d 20 30 3b | 0d 00 00 00 00 28 00 00 |alarm 0;|.....(..|
|000023e0| 25 1c 00 00 40 e0 2e 00 | fd 29 e0 ff 0d 51 e0 ff |%...@...|.)...Q..|
|000023f0| 70 1a 00 00 7d 3b 0d 00 | 00 1c 00 00 a5 74 00 00 |p...};..|.....t..|
|00002400| 40 90 4d 04 1d fb df ff | 2d 22 e0 ff 70 1a 00 00 |@.M.....|-"..p...|
|00002410| 69 66 20 28 24 40 20 61 | 6e 64 20 24 40 20 21 7e |if ($@ a|nd $@ !~|
|00002420| 20 2f 61 6c 61 72 6d 20 | 63 6c 6f 63 6b 20 72 65 | /alarm |clock re|
|00002430| 73 74 61 72 74 2f 29 20 | 7b 20 64 69 65 20 7d 0d |start/) |{ die }.|
|00002440| 08 2e 20 20 0c ba 82 00 | 12 b8 82 00 00 00 00 00 |.. ....|........|
|00002450| 08 20 65 68 12 00 00 00 | 00 00 00 00 07 f8 82 00 |. eh....|........|
|00002460| 18 bb 82 00 18 bb 82 00 | 00 00 00 00 00 74 00 00 |........|.....t..|
|00002470| a5 24 00 00 40 00 00 00 | 8d e6 df ff 4d f3 df ff |.$..@...|....M...|
|00002480| 00 00 00 00 0d 08 65 20 | 18 bc 82 00 00 00 00 00 |......e |........|
|00002490| 00 24 00 00 05 80 00 00 | 00 30 ce 07 bd 8d df ff |.$......|.0......|
|000024a0| 9d bc df ff 20 22 00 00 | 46 6f 72 20 6d 6f 72 65 |.... "..|For more|
|000024b0| 20 63 6f 6d 70 6c 65 78 | 20 73 69 67 6e 61 6c 20 | complex| signal |
|000024c0| 68 61 6e 64 6c 69 6e 67 | 2c 20 79 6f 75 20 6d 69 |handling|, you mi|
|000024d0| 67 68 74 20 73 65 65 20 | 74 68 65 20 73 74 61 6e |ght see |the stan|
|000024e0| 64 61 72 64 20 50 4f 53 | 49 58 20 6d 6f 64 75 6c |dard POS|IX modul|
|000024f0| 65 2e 20 20 4c 61 6d 65 | 6e 74 61 62 6c 79 2c 20 |e. Lame|ntably, |
|00002500| 74 68 69 73 20 69 73 20 | 61 6c 6d 6f 73 74 20 00 |this is |almost .|
|00002510| 00 80 00 00 85 98 00 00 | 00 80 ed 07 96 55 df ff |........|.....U..|
|00002520| 76 84 df ff 20 22 00 00 | 65 6e 74 69 72 65 6c 79 |v... "..|entirely|
|00002530| 20 75 6e 64 6f 63 75 6d | 65 6e 74 65 64 2c 20 62 | undocum|ented, b|
|00002540| 75 74 20 74 68 65 20 07 | 06 bd 82 00 06 bd 82 00 |ut the .|........|
|00002550| 00 00 00 00 74 2f 6c 69 | 62 2f 70 6f 73 69 78 2e |....t/li|b/posix.|
|00002560| 74 08 82 00 06 be 82 00 | 00 00 00 00 20 66 69 6c |t.......|.... fil|
|00002570| 65 20 66 72 6f 6d 20 74 | 68 65 20 50 65 72 6c 20 |e from t|he Perl |
|00002580| 73 6f 75 72 63 65 20 64 | 69 73 74 72 69 62 75 74 |source d|istribut|
|00002590| 69 6f 6e 20 68 61 73 20 | 73 6f 6d 65 20 65 78 61 |ion has |some exa|
|000025a0| 6d 70 6c 65 73 20 00 00 | 00 98 00 00 a5 2c 00 00 |mples ..|.....,..|
|000025b0| 40 f8 55 00 6f 1d df ff | 4f 4c df ff 20 22 00 00 |@.U.o...|OL.. "..|
|000025c0| 69 6e 20 69 74 2e 0d 07 | 08 bf 82 00 08 bf 82 00 |in it...|........|
|000025d0| 00 00 00 00 00 2c 00 00 | a5 30 00 00 40 04 a6 01 |.....,..|.0..@...|
|000025e0| 28 97 de ff 78 dd de ff | 68 37 00 00 4e 61 6d 65 |(...x...|h7..Name|
|000025f0| 64 20 50 69 70 65 73 0d | 08 27 74 20 08 c0 82 00 |d Pipes.|.'t ....|
|00002600| 00 00 00 00 00 30 00 00 | 05 80 00 00 00 18 da 07 |.....0..|........|
|00002610| c7 3e de ff a7 6d de ff | 20 22 00 00 41 20 6e 61 |.>...m..| "..A na|
|00002620| 6d 65 64 20 70 69 70 65 | 20 28 6f 66 74 65 6e 20 |med pipe| (often |
|00002630| 72 65 66 65 72 72 65 64 | 20 74 6f 20 61 73 20 61 |referred| to as a|
|00002640| 20 46 49 46 4f 29 20 69 | 73 20 61 6e 20 6f 6c 64 | FIFO) i|s an old|
|00002650| 20 55 6e 69 78 20 49 50 | 43 20 6d 65 63 68 61 6e | Unix IP|C mechan|
|00002660| 69 73 6d 20 66 6f 72 20 | 70 72 6f 63 65 73 73 65 |ism for |processe|
|00002670| 73 20 63 6f 6d 6d 75 6e | 69 63 61 74 69 6e 67 20 |s commun|icating |
|00002680| 6f 6e 20 00 00 80 00 00 | 05 80 00 00 00 b4 6e 07 |on .....|......n.|
|00002690| a0 06 de ff 80 35 de ff | 20 22 00 00 74 68 65 20 |.....5..| "..the |
|000026a0| 73 61 6d 65 20 6d 61 63 | 68 69 6e 65 2e 20 20 49 |same mac|hine. I|
|000026b0| 74 20 77 6f 72 6b 73 20 | 6a 75 73 74 20 6c 69 6b |t works |just lik|
|000026c0| 65 20 61 20 72 65 67 75 | 6c 61 72 2c 20 63 6f 6e |e a regu|lar, con|
|000026d0| 6e 65 63 74 65 64 20 61 | 6e 6f 6e 79 6d 6f 75 73 |nected a|nonymous|
|000026e0| 20 70 69 70 65 73 2c 20 | 65 78 63 65 70 74 20 74 | pipes, |except t|
|000026f0| 68 61 74 20 74 68 65 20 | 70 72 6f 63 65 73 73 65 |hat the |processe|
|00002700| 73 20 00 00 00 80 00 00 | 25 54 00 00 40 4c 31 04 |s ......|%T..@L1.|
|00002710| 79 ce dd ff 59 fd dd ff | 20 22 00 00 72 65 6e 64 |y...Y...| "..rend|
|00002720| 65 7a 76 6f 75 73 20 75 | 73 69 6e 67 20 61 20 66 |ezvous u|sing a f|
|00002730| 69 6c 65 6e 61 6d 65 20 | 61 6e 64 20 64 6f 6e 27 |ilename |and don'|
|00002740| 74 20 68 61 76 65 20 74 | 6f 20 62 65 20 72 65 6c |t have t|o be rel|
|00002750| 61 74 65 64 2e 0d 00 00 | 00 54 00 00 05 7c 00 00 |ated....|.T...|..|
|00002760| 00 d8 bf 07 a2 5f dd ff | 82 8e dd ff 20 22 00 00 |....._..|.... "..|
|00002770| 54 6f 20 63 72 65 61 74 | 65 20 61 20 6e 61 6d 65 |To creat|e a name|
|00002780| 64 20 70 69 70 65 2c 20 | 75 73 65 20 74 68 65 20 |d pipe, |use the |
|00002790| 55 6e 69 78 20 63 6f 6d | 6d 61 6e 64 20 6d 6b 6e |Unix com|mand mkn|
|000027a0| 6f 64 28 31 29 20 6f 72 | 20 6f 6e 20 73 6f 6d 65 |od(1) or| on some|
|000027b0| 20 73 79 73 74 65 6d 73 | 2c 20 6d 6b 66 69 66 6f | systems|, mkfifo|
|000027c0| 28 31 29 2e 20 20 54 68 | 65 73 65 20 6d 61 79 20 |(1). Th|ese may |
|000027d0| 6e 6f 74 20 00 7c 00 00 | a5 54 00 00 40 c0 b6 01 |not .|..|.T..@...|
|000027e0| 7b 27 dd ff 5b 56 dd ff | 20 22 00 00 62 65 20 69 |{'..[V..| "..be i|
|000027f0| 6e 20 79 6f 75 72 20 6e | 6f 72 6d 61 6c 20 70 61 |n your n|ormal pa|
|00002800| 74 68 2e 0d 07 20 79 6f | 12 c1 82 00 12 c1 82 00 |th... yo|........|
|00002810| 00 00 00 00 07 6c 20 66 | 0c c2 82 00 12 c1 82 00 |.....l f|........|
|00002820| 0c c2 82 00 00 00 00 00 | 00 54 00 00 25 48 00 00 |........|.T..%H..|
|00002830| 40 20 36 04 74 c0 dc ff | 84 e7 dc ff 70 1a 00 00 |@ 6.t...|....p...|
|00002840| 23 20 73 79 73 74 65 6d | 20 72 65 74 75 72 6e 20 |# system| return |
|00002850| 76 61 6c 20 69 73 20 62 | 61 63 6b 77 61 72 64 73 |val is b|ackwards|
|00002860| 2c 20 73 6f 20 26 26 20 | 6e 6f 74 20 7c 7c 0d 00 |, so && |not ||..|
|00002870| 00 48 00 00 25 1c 00 00 | 40 70 17 00 94 91 dc ff |.H..%...|@p......|
|00002880| a4 b8 dc ff 70 1a 00 00 | 23 0d 00 00 00 1c 00 00 |....p...|#.......|
|00002890| 25 38 00 00 40 90 d6 02 | b4 62 dc ff c4 89 dc ff |%8..@...|.b......|
|000028a0| 70 1a 00 00 24 45 4e 56 | 7b 50 41 54 48 7d 20 2e |p...$ENV|{PATH} .|
|000028b0| 3d 20 22 3a 2f 65 74 63 | 3a 2f 75 73 72 2f 65 74 |= ":/etc|:/usr/et|
|000028c0| 63 22 3b 0d 00 38 00 00 | 25 40 00 00 40 10 92 03 |c";..8..|%@..@...|
|000028d0| d4 33 dc ff e4 5a dc ff | 70 1a 00 00 69 66 20 20 |.3...Z..|p...if |
|000028e0| 28 20 20 20 20 20 20 73 | 79 73 74 65 6d 28 27 6d |( s|ystem('m|
|000028f0| 6b 6e 6f 64 27 2c 20 20 | 24 70 61 74 68 2c 20 27 |knod', |$path, '|
|00002900| 70 27 29 0d 00 40 00 00 | 25 40 00 00 40 c0 4b 03 |p')..@..|%@..@.K.|
|00002910| f4 04 dc ff 04 2c dc ff | 70 1a 00 00 20 20 20 20 |.....,..|p... |
|00002920| 20 20 20 20 26 26 20 73 | 79 73 74 65 6d 28 27 6d | && s|ystem('m|
|00002930| 6b 66 69 66 6f 27 2c 20 | 24 70 61 74 68 29 20 29 |kfifo', |$path) )|
|00002940| 0d 00 00 00 00 40 00 00 | 25 1c 00 00 40 70 17 00 |.....@..|%...@p..|
|00002950| 14 d6 db ff 24 fd db ff | 70 1a 00 00 7b 0d 00 00 |....$...|p...{...|
|00002960| 00 1c 00 00 25 3c 00 00 | 40 50 34 03 34 a7 db ff |....%<..|@P4.4...|
|00002970| 44 ce db ff 70 1a 00 00 | 20 20 20 20 64 69 65 20 |D...p...| die |
|00002980| 22 6d 6b 7b 6e 6f 64 2c | 66 69 66 6f 7d 20 24 70 |"mk{nod,|fifo} $p|
|00002990| 61 74 68 20 66 61 69 6c | 65 64 3b 0d 00 3c 00 00 |ath fail|ed;..<..|
|000029a0| a5 44 00 00 40 70 17 00 | 54 78 db ff 64 9f db ff |.D..@p..|Tx..d...|
|000029b0| 70 1a 00 00 7d 0d 08 63 | 0c c3 82 00 12 c1 82 00 |p...}..c|........|
|000029c0| 00 00 00 00 08 02 83 00 | 12 00 00 00 00 00 00 00 |........|........|
|000029d0| 07 05 05 05 18 c4 82 00 | 18 c4 82 00 00 00 00 00 |........|........|
|000029e0| 00 44 00 00 a5 24 00 00 | 40 00 00 00 c4 63 db ff |.D...$..|@....c..|
|000029f0| 84 70 db ff 00 00 00 00 | 0d 08 05 05 18 c5 82 00 |.p......|........|
|00002a00| 00 00 00 00 00 24 00 00 | 05 80 00 00 00 30 a1 07 |.....$..|.....0..|
|00002a10| f4 0a db ff d4 39 db ff | 20 22 00 00 41 20 66 69 |.....9..| "..A fi|
|00002a20| 66 6f 20 69 73 20 63 6f | 6e 76 65 6e 69 65 6e 74 |fo is co|nvenient|
|00002a30| 20 77 68 65 6e 20 79 6f | 75 20 77 61 6e 74 20 74 | when yo|u want t|
|00002a40| 6f 20 63 6f 6e 6e 65 63 | 74 20 61 20 70 72 6f 63 |o connec|t a proc|
|00002a50| 65 73 73 20 74 6f 20 61 | 6e 20 75 6e 72 65 6c 61 |ess to a|n unrela|
|00002a60| 74 65 64 20 6f 6e 65 2e | 20 20 57 68 65 6e 20 79 |ted one.| When y|
|00002a70| 6f 75 20 6f 70 65 6e 20 | 61 20 66 69 66 6f 2c 20 |ou open |a fifo, |
|00002a80| 74 68 65 20 00 80 00 00 | 25 58 00 00 40 f0 62 04 |the ....|%X..@.b.|
|00002a90| cd d2 da ff ad 01 db ff | 20 22 00 00 70 72 6f 67 |........| "..prog|
|00002aa0| 72 61 6d 20 77 69 6c 6c | 20 62 6c 6f 63 6b 20 75 |ram will| block u|
|00002ab0| 6e 74 69 6c 20 74 68 65 | 72 65 27 73 20 73 6f 6d |ntil the|re's som|
|00002ac0| 65 74 68 69 6e 67 20 6f | 6e 20 74 68 65 20 6f 74 |ething o|n the ot|
|00002ad0| 68 65 72 20 65 6e 64 2e | 0d 00 00 00 00 58 00 00 |her end.|.....X..|
|00002ae0| 85 98 00 00 00 24 bc 07 | f6 63 da ff d6 92 da ff |.....$..|.c......|
|00002af0| 20 22 00 00 46 6f 72 20 | 65 78 61 6d 70 6c 65 2c | "..For |example,|
|00002b00| 20 6c 65 74 27 73 20 73 | 61 79 20 79 6f 75 27 64 | let's s|ay you'd|
|00002b10| 20 6c 69 6b 65 20 74 6f | 20 68 61 76 65 20 79 6f | like to| have yo|
|00002b20| 75 72 20 07 06 c6 82 00 | 06 c6 82 00 00 00 00 00 |ur .....|........|
|00002b30| 2e 73 69 67 6e 61 74 75 | 72 65 08 74 06 c7 82 00 |.signatu|re.t....|
|00002b40| 00 00 00 00 20 66 69 6c | 65 20 62 65 20 61 20 6e |.... fil|e be a n|
|00002b50| 61 6d 65 64 20 70 69 70 | 65 20 74 68 61 74 20 68 |amed pip|e that h|
|00002b60| 61 73 20 61 20 50 65 72 | 6c 20 70 72 6f 67 72 61 |as a Per|l progra|
|00002b70| 6d 20 00 00 00 98 00 00 | 05 84 00 00 00 e0 9c 07 |m ......|........|
|00002b80| cf 2b da ff af 5a da ff | 20 22 00 00 6f 6e 20 74 |.+...Z..| "..on t|
|00002b90| 68 65 20 6f 74 68 65 72 | 20 65 6e 64 2e 20 20 4e |he other| end. N|
|00002ba0| 6f 77 20 65 76 65 72 79 | 20 74 69 6d 65 20 61 6e |ow every| time an|
|00002bb0| 79 20 70 72 6f 67 72 61 | 6d 20 28 6c 69 6b 65 20 |y progra|m (like |
|00002bc0| 61 20 6d 61 69 6c 65 72 | 2c 20 6e 65 77 73 20 72 |a mailer|, news r|
|00002bd0| 65 61 64 65 72 2c 20 66 | 69 6e 67 65 72 20 70 72 |eader, f|inger pr|
|00002be0| 6f 67 72 61 6d 2c 20 65 | 74 63 2e 29 20 74 72 69 |ogram, e|tc.) tri|
|00002bf0| 65 73 20 74 6f 20 00 00 | 00 84 00 00 01 10 00 00 |es to ..|........|
|00002c00| 00 4c c1 07 00 00 00 00 | 00 10 00 00 02 14 00 00 |.L......|........|
|00002c10| 9c 05 00 00 00 00 00 00 | 00 00 00 00 00 14 00 00 |........|........|
|00002c20| 05 90 00 00 00 4c c1 07 | 6d 45 d8 ff 4d 74 d8 ff |.....L..|mE..Mt..|
|00002c30| 20 22 00 00 16 00 00 00 | b0 fc 07 00 00 00 00 00 | "......|........|
|00002c40| 72 65 61 64 20 66 72 6f | 6d 20 74 68 61 74 20 66 |read fro|m that f|
|00002c50| 69 6c 65 2c 20 74 68 65 | 20 72 65 61 64 69 6e 67 |ile, the| reading|
|00002c60| 20 70 72 6f 67 72 61 6d | 20 77 69 6c 6c 20 62 6c | program| will bl|
|00002c70| 6f 63 6b 20 61 6e 64 20 | 79 6f 75 72 20 70 72 6f |ock and |your pro|
|00002c80| 67 72 61 6d 20 77 69 6c | 6c 20 73 75 70 70 6c 79 |gram wil|l supply|
|00002c90| 20 74 68 65 20 6e 65 77 | 20 73 69 67 6e 61 74 75 | the new| signatu|
|00002ca0| 72 65 2e 20 20 57 65 27 | 6c 6c 20 00 00 90 00 00 |re. We'|ll .....|
|00002cb0| 85 9c 00 00 00 24 9e 07 | 46 0d d8 ff 26 3c d8 ff |.....$..|F...&<..|
|00002cc0| 20 22 00 00 75 73 65 20 | 74 68 65 20 70 69 70 65 | "..use |the pipe|
|00002cd0| 2d 63 68 65 63 6b 69 6e | 67 20 66 69 6c 65 20 74 |-checkin|g file t|
|00002ce0| 65 73 74 20 07 73 2e 20 | 10 c8 82 00 10 c8 82 00 |est .s. |........|
|00002cf0| 00 00 00 00 2d 70 08 20 | 10 00 00 00 00 00 00 00 |....-p. |........|
|00002d00| 20 74 6f 20 66 69 6e 64 | 20 6f 75 74 20 77 68 65 | to find| out whe|
|00002d10| 74 68 65 72 20 61 6e 79 | 6f 6e 65 20 28 6f 72 20 |ther any|one (or |
|00002d20| 61 6e 79 74 68 69 6e 67 | 29 20 68 61 73 20 61 63 |anything|) has ac|
|00002d30| 63 69 64 65 6e 74 61 6c | 6c 79 20 72 65 6d 6f 76 |cidental|ly remov|
|00002d40| 65 64 20 6f 75 72 20 00 | 00 9c 00 00 a5 40 00 00 |ed our .|.....@..|
|00002d50| 40 68 4f 00 1f d5 d7 ff | ff 03 d8 ff 20 22 00 00 |@hO.....|.... "..|
|00002d60| 66 69 66 6f 2e 0d 07 73 | 12 c9 82 00 12 c9 82 00 |fifo...s|........|
|00002d70| 00 00 00 00 07 43 68 69 | 0c ca 82 00 12 c9 82 00 |.....Chi|........|
|00002d80| 0c ca 82 00 00 00 00 00 | 00 40 00 00 25 2c 00 00 |........|.@..%,..|
|00002d90| 40 00 77 01 18 6e d7 ff | 28 95 d7 ff 70 1a 00 00 |@.w..n..|(...p...|
|00002da0| 63 68 64 69 72 3b 20 23 | 20 67 6f 20 68 6f 6d 65 |chdir; #| go home|
|00002db0| 0d 00 00 00 00 2c 00 00 | 25 30 00 00 40 30 ec 01 |.....,..|%0..@0..|
|00002dc0| 38 3f d7 ff 48 66 d7 ff | 70 1a 00 00 24 46 49 46 |8?..Hf..|p...$FIF|
|00002dd0| 4f 20 3d 20 27 2e 73 69 | 67 6e 61 74 75 72 65 27 |O = '.si|gnature'|
|00002de0| 3b 0d 00 00 00 30 00 00 | a5 64 00 00 40 70 05 03 |;....0..|.d..@p..|
|00002df0| 58 10 d7 ff 68 37 d7 ff | 70 1a 00 00 24 45 4e 56 |X...h7..|p...$ENV|
|00002e00| 7b 50 41 54 48 7d 20 2e | 3d 20 22 3a 2f 65 74 63 |{PATH} .|= ":/etc|
|00002e10| 3a 2f 75 73 72 2f 67 61 | 6d 65 73 22 3b 0d 08 6f |:/usr/ga|mes";..o|
|00002e20| 0c cb 82 00 12 c9 82 00 | 00 00 00 00 08 74 65 64 |........|.....ted|
|00002e30| 12 00 00 00 00 00 00 00 | 07 6f 6e 20 18 cc 82 00 |........|.on ....|
|00002e40| 18 cc 82 00 00 00 00 00 | 00 64 00 00 a5 48 00 00 |........|.d...H..|
|00002e50| 40 00 00 00 c8 fb d6 ff | 88 08 d7 ff 00 00 00 00 |@.......|........|
|00002e60| 0d 08 00 00 18 cd 82 00 | 00 00 00 00 07 69 6f f1 |........|.....io.|
|00002e70| 12 ce 82 00 12 ce 82 00 | 00 00 00 00 07 50 41 54 |........|.....PAT|
|00002e80| 0c cf 82 00 12 ce 82 00 | 0c cf 82 00 00 00 00 00 |........|........|
|00002e90| 00 48 00 00 25 24 00 00 | 40 d0 01 01 c8 aa d6 ff |.H..%$..|@.......|
|00002ea0| d8 d1 d6 ff 70 1a 00 00 | 77 68 69 6c 65 20 28 31 |....p...|while (1|
|00002eb0| 29 20 7b 0d 00 24 00 00 | 25 30 00 00 40 10 1b 02 |) {..$..|%0..@...|
|00002ec0| e8 7b d6 ff f8 a2 d6 ff | 70 1a 00 00 20 20 20 20 |.{......|p... |
|00002ed0| 75 6e 6c 65 73 73 20 28 | 2d 70 20 24 46 49 46 4f |unless (|-p $FIFO|
|00002ee0| 29 20 7b 0d 00 30 00 00 | 25 30 00 00 41 30 ec 01 |) {..0..|%0..A0..|
|00002ef0| 08 4d d6 ff 18 74 d6 ff | 70 1a 00 00 20 20 20 20 |.M...t..|p... |
|00002f00| 20 20 20 20 75 6e 6c 69 | 6e 6b 20 24 46 49 46 4f | unli|nk $FIFO|
|00002f10| 3b 0d 00 00 00 30 00 00 | 25 3c 00 00 41 50 34 03 |;....0..|%<..AP4.|
|00002f20| 28 1e d6 ff 38 45 d6 ff | 70 1a 00 00 20 20 20 20 |(...8E..|p... |
|00002f30| 20 20 20 20 73 79 73 74 | 65 6d 28 27 6d 6b 6e 6f | syst|em('mkno|
|00002f40| 64 27 2c 20 24 46 49 46 | 4f 2c 20 27 70 27 29 0d |d', $FIF|O, 'p').|
|00002f50| 00 3c 00 00 25 44 00 00 | 40 d0 ef 03 48 ef d5 ff |.<..%D..|@...H...|
|00002f60| 58 16 d6 ff 70 1a 00 00 | 20 20 20 20 20 20 20 20 |X...p...| |
|00002f70| 20 20 20 20 26 26 20 64 | 69 65 20 22 63 61 6e 27 | && d|ie "can'|
|00002f80| 74 20 6d 6b 6e 6f 64 20 | 24 46 49 46 4f 3a 20 24 |t mknod |$FIFO: $|
|00002f90| 21 22 3b 0d 00 44 00 00 | a5 48 00 00 40 30 75 00 |!";..D..|.H..@0u.|
|00002fa0| 68 c0 d5 ff 78 e7 d5 ff | 70 1a 00 00 20 20 20 20 |h...x...|p... |
|00002fb0| 7d 0d 08 00 0c d0 82 00 | 12 ce 82 00 00 00 00 00 |}.......|........|
|00002fc0| 08 1a 00 00 12 00 00 00 | 00 00 00 00 07 20 7b 0d |........|..... {.|
|00002fd0| 18 d1 82 00 18 d1 82 00 | 00 00 00 00 00 48 00 00 |........|.....H..|
|00002fe0| a5 48 00 00 40 00 00 00 | d8 ab d5 ff 98 b8 d5 ff |.H..@...|........|
|00002ff0| 00 00 00 00 0d 08 83 00 | 18 d2 82 00 00 00 00 00 |........|........|
|00003000| 07 26 26 20 12 d3 82 00 | 12 d3 82 00 00 00 00 00 |.&& ....|........|
|00003010| 07 11 83 00 0c d4 82 00 | 12 d3 82 00 0c d4 82 00 |........|........|
|00003020| 00 00 00 00 00 48 00 00 | 25 48 00 00 40 b0 1e 04 |.....H..|%H..@...|
|00003030| d8 5a d5 ff e8 81 d5 ff | 70 1a 00 00 20 20 20 20 |.Z......|p... |
|00003040| 23 20 6e 65 78 74 20 6c | 69 6e 65 20 62 6c 6f 63 |# next l|ine bloc|
|00003050| 6b 73 20 75 6e 74 69 6c | 20 74 68 65 72 65 27 73 |ks until| there's|
|00003060| 20 61 20 72 65 61 64 65 | 72 0d 00 00 00 48 00 00 | a reade|r....H..|
|00003070| 25 54 00 00 40 60 4f 05 | f8 2b d5 ff 08 53 d5 ff |%T..@`O.|.+...S..|
|00003080| 70 1a 00 00 20 20 20 20 | 6f 70 65 6e 20 28 46 49 |p... |open (FI|
|00003090| 46 4f 2c 20 22 3e 20 24 | 46 49 46 4f 22 29 20 7c |FO, "> $|FIFO") ||
|000030a0| 7c 20 64 69 65 20 22 63 | 61 6e 27 74 20 77 72 69 || die "c|an't wri|
|000030b0| 74 65 20 24 46 49 46 4f | 3a 20 24 21 22 3b 0d 00 |te $FIFO|: $!";..|
|000030c0| 00 54 00 00 25 58 00 00 | 40 20 ad 05 18 fd d4 ff |.T..%X..|@ ......|
|000030d0| 28 24 d5 ff 70 1a 00 00 | 20 20 20 20 70 72 69 6e |($..p...| prin|
|000030e0| 74 20 46 49 46 4f 20 22 | 4a 6f 68 6e 20 53 6d 69 |t FIFO "|John Smi|
|000030f0| 74 68 20 28 73 6d 69 74 | 68 5c 40 68 6f 73 74 2e |th (smit|h\@host.|
|00003100| 6f 72 67 29 5c 6e 22 2c | 20 60 66 6f 72 74 75 6e |org)\n",| `fortun|
|00003110| 65 20 2d 73 60 3b 0d 00 | 00 58 00 00 25 28 00 00 |e -s`;..|.X..%(..|
|00003120| 40 90 5f 01 38 ce d4 ff | 48 f5 d4 ff 70 1a 00 00 |@._.8...|H...p...|
|00003130| 20 20 20 20 63 6c 6f 73 | 65 20 46 49 46 4f 3b 0d | clos|e FIFO;.|
|00003140| 00 28 00 00 25 40 00 00 | 40 a0 7a 03 58 9f d4 ff |.(..%@..|@.z.X...|
|00003150| 68 c6 d4 ff 70 1a 00 00 | 20 20 20 20 73 6c 65 65 |h...p...| slee|
|00003160| 70 20 32 3b 20 20 20 20 | 23 20 74 6f 20 61 76 6f |p 2; |# to avo|
|00003170| 69 64 20 64 75 70 20 73 | 69 67 6e 61 6c 73 0d 00 |id dup s|ignals..|
|00003180| 00 40 00 00 a5 44 00 00 | 40 70 17 00 78 70 d4 ff |.@...D..|@p..xp..|
|00003190| 88 97 d4 ff 70 1a 00 00 | 7d 0d 08 6e 0c d5 82 00 |....p...|}..n....|
|000031a0| 12 d3 82 00 00 00 00 00 | 08 6e 67 3a 12 00 00 00 |........|.ng:....|
|000031b0| 00 00 00 00 07 20 61 20 | 18 d6 82 00 18 d6 82 00 |..... a |........|
|000031c0| 00 00 00 00 00 44 00 00 | a5 34 00 00 40 00 00 00 |.....D..|.4..@...|
|000031d0| e8 5b d4 ff a8 68 d4 ff | 00 00 00 00 0d 08 76 65 |.[...h..|......ve|
|000031e0| 18 d7 82 00 00 00 00 00 | 07 20 54 68 08 d8 82 00 |........|. Th....|
|000031f0| 08 d8 82 00 00 00 00 00 | 00 34 00 00 a5 48 00 00 |........|.4...H..|
|00003200| 40 d4 80 02 a8 eb d3 ff | f8 31 d4 ff 68 37 00 00 |@.......|.1..h7..|
|00003210| 55 73 69 6e 67 20 6f 70 | 65 6e 28 29 20 66 6f 72 |Using op|en() for|
|00003220| 20 49 50 43 0d 08 73 20 | 08 d9 82 00 00 00 00 00 | IPC..s |........|
|00003230| 07 72 20 73 14 da 82 00 | 14 da 82 00 00 00 00 00 |.r s....|........|
|00003240| 00 48 00 00 05 80 00 00 | 00 70 76 07 47 93 d3 ff |.H......|.pv.G...|
|00003250| 27 c2 d3 ff 20 22 00 00 | 50 65 72 6c 27 73 20 62 |'... "..|Perl's b|
|00003260| 61 73 69 63 20 6f 70 65 | 6e 28 29 20 73 74 61 74 |asic ope|n() stat|
|00003270| 65 6d 65 6e 74 20 63 61 | 6e 20 61 6c 73 6f 20 62 |ement ca|n also b|
|00003280| 65 20 75 73 65 64 20 66 | 6f 72 20 75 6e 69 64 69 |e used f|or unidi|
|00003290| 72 65 63 74 69 6f 6e 61 | 6c 20 69 6e 74 65 72 70 |rectiona|l interp|
|000032a0| 72 6f 63 65 73 73 20 63 | 6f 6d 6d 75 6e 69 63 61 |rocess c|ommunica|
|000032b0| 74 69 6f 6e 20 62 79 20 | 65 69 74 68 65 72 20 00 |tion by |either .|
|000032c0| 00 80 00 00 05 84 00 00 | 00 40 e8 07 20 5b d3 ff |........|.@.. [..|
|000032d0| 00 8a d3 ff 20 22 00 00 | 61 70 70 65 6e 64 69 6e |.... "..|appendin|
|000032e0| 67 20 6f 72 20 70 72 65 | 70 65 6e 64 69 6e 67 20 |g or pre|pending |
|000032f0| 61 20 70 69 70 65 20 73 | 79 6d 62 6f 6c 20 74 6f |a pipe s|ymbol to|
|00003300| 20 74 68 65 20 73 65 63 | 6f 6e 64 20 61 72 67 75 | the sec|ond argu|
|00003310| 6d 65 6e 74 20 74 6f 20 | 6f 70 65 6e 28 29 2e 20 |ment to |open(). |
|00003320| 20 48 65 72 65 27 73 20 | 68 6f 77 20 74 6f 20 73 | Here's |how to s|
|00003330| 74 61 72 74 20 73 6f 6d | 65 74 68 69 6e 67 20 75 |tart som|ething u|
|00003340| 70 20 00 00 00 84 00 00 | a5 70 00 00 40 28 f3 02 |p ......|.p..@(..|
|00003350| f9 22 d3 ff d9 51 d3 ff | 20 22 00 00 69 6e 20 61 |."...Q..| "..in a|
|00003360| 20 63 68 69 6c 64 20 70 | 72 6f 63 65 73 73 20 79 | child p|rocess y|
|00003370| 6f 75 20 69 6e 74 65 6e | 64 20 74 6f 20 77 72 69 |ou inten|d to wri|
|00003380| 74 65 20 74 6f 3a 0d 08 | 14 00 00 00 00 00 00 00 |te to:..|........|
|00003390| 07 54 44 4f 12 db 82 00 | 12 db 82 00 00 00 00 00 |.TDO....|........|
|000033a0| 07 22 83 00 0c dc 82 00 | 12 db 82 00 0c dc 82 00 |."......|........|
|000033b0| 00 00 00 00 00 70 00 00 | 25 48 00 00 40 20 36 04 |.....p..|%H..@ 6.|
|000033c0| f2 bb d2 ff 02 e3 d2 ff | 70 1a 00 00 6f 70 65 6e |........|p...open|
|000033d0| 28 53 50 4f 4f 4c 45 52 | 2c 20 22 7c 20 63 61 74 |(SPOOLER|, "| cat|
|000033e0| 20 2d 76 20 7c 20 6c 70 | 72 20 2d 68 20 32 3e 2f | -v | lp|r -h 2>/|
|000033f0| 64 65 76 2f 6e 75 6c 6c | 22 29 0d 00 00 48 00 00 |dev/null|")...H..|
|00003400| 25 44 00 00 40 80 a9 03 | 12 8d d2 ff 22 b4 d2 ff |%D..@...|...."...|
|00003410| 70 1a 00 00 20 20 20 20 | 20 20 20 20 20 20 20 20 |p... | |
|00003420| 20 20 20 20 7c 7c 20 64 | 69 65 20 22 63 61 6e 27 | || d|ie "can'|
|00003430| 74 20 66 6f 72 6b 3a 20 | 24 21 22 3b 0d 00 00 00 |t fork: |$!";....|
|00003440| 00 44 00 00 25 50 00 00 | 40 c0 c2 04 32 5e d2 ff |.D..%P..|@...2^..|
|00003450| 42 85 d2 ff 70 1a 00 00 | 6c 6f 63 61 6c 20 24 53 |B...p...|local $S|
|00003460| 49 47 7b 50 49 50 45 7d | 20 3d 20 73 75 62 20 7b |IG{PIPE}| = sub {|
|00003470| 20 64 69 65 20 22 73 70 | 6f 6f 6c 65 72 20 70 69 | die "sp|ooler pi|
|00003480| 70 65 20 62 72 6f 6b 65 | 22 20 7d 3b 0d 00 00 00 |pe broke|" };....|
|00003490| 00 50 00 00 25 34 00 00 | 40 80 32 02 52 2f d2 ff |.P..%4..|@.2.R/..|
|000034a0| 62 56 d2 ff 70 1a 00 00 | 70 72 69 6e 74 20 53 50 |bV..p...|print SP|
|000034b0| 4f 4f 4c 45 52 20 22 73 | 74 75 66 66 5c 6e 22 3b |OOLER "s|tuff\n";|
|000034c0| 0d 00 00 00 00 34 00 00 | a5 6c 00 00 40 80 a9 03 |.....4..|.l..@...|
|000034d0| 72 00 d2 ff 82 27 d2 ff | 70 1a 00 00 63 6c 6f 73 |r....'..|p...clos|
|000034e0| 65 20 53 50 4f 4f 4c 45 | 52 20 7c 7c 20 64 69 65 |e SPOOLE|R || die|
|000034f0| 20 22 62 61 64 20 73 70 | 6f 6f 6c 3a 20 24 21 20 | "bad sp|ool: $! |
|00003500| 24 3f 22 3b 0d 08 83 00 | 0c dd 82 00 12 db 82 00 |$?";....|........|
|00003510| 00 00 00 00 08 10 00 00 | 12 00 00 00 00 00 00 00 |........|........|
|00003520| 07 00 00 00 18 de 82 00 | 18 de 82 00 00 00 00 00 |........|........|
|00003530| 00 6c 00 00 a5 34 00 00 | 40 00 00 00 e2 eb d1 ff |.l...4..|@.......|
|00003540| a2 f8 d1 ff 00 00 00 00 | 0d 08 82 00 18 df 82 00 |........|........|
|00003550| 00 00 00 00 07 65 72 6c | 14 e0 82 00 14 e0 82 00 |.....erl|........|
|00003560| 00 00 00 00 00 34 00 00 | a5 8c 00 00 40 20 e1 04 |.....4..|....@ ..|
|00003570| 12 93 d1 ff f2 c1 d1 ff | 20 22 00 00 41 6e 64 20 |........| "..And |
|00003580| 68 65 72 65 27 73 20 68 | 6f 77 20 74 6f 20 73 74 |here's h|ow to st|
|00003590| 61 72 74 20 75 70 20 61 | 20 63 68 69 6c 64 20 70 |art up a| child p|
|000035a0| 72 6f 63 65 73 73 20 79 | 6f 75 20 69 6e 74 65 6e |rocess y|ou inten|
|000035b0| 64 20 74 6f 20 72 65 61 | 64 20 66 72 6f 6d 3a 0d |d to rea|d from:.|
|000035c0| 08 0d 08 05 14 00 00 00 | 00 00 00 00 07 05 05 05 |........|........|
|000035d0| 12 e1 82 00 12 e1 82 00 | 00 00 00 00 07 65 73 63 |........|.....esc|
|000035e0| 0c e2 82 00 12 e1 82 00 | 0c e2 82 00 00 00 00 00 |........|........|
|000035f0| 00 8c 00 00 25 3c 00 00 | 40 e0 1c 03 0b 2c d1 ff |....%<..|@....,..|
|00003600| 1b 53 d1 ff 70 1a 00 00 | 6f 70 65 6e 28 53 54 41 |.S..p...|open(STA|
|00003610| 54 55 53 2c 20 22 6e 65 | 74 73 74 61 74 20 2d 61 |TUS, "ne|tstat -a|
|00003620| 6e 20 32 3e 26 31 20 7c | 22 29 0d 00 00 3c 00 00 |n 2>&1 ||")...<..|
|00003630| 25 44 00 00 40 80 a9 03 | 2b fd d0 ff 3b 24 d1 ff |%D..@...|+...;$..|
|00003640| 70 1a 00 00 20 20 20 20 | 20 20 20 20 20 20 20 20 |p... | |
|00003650| 20 20 20 20 7c 7c 20 64 | 69 65 20 22 63 61 6e 27 | || d|ie "can'|
|00003660| 74 20 66 6f 72 6b 3a 20 | 24 21 22 3b 0d 00 00 00 |t fork: |$!";....|
|00003670| 00 44 00 00 25 2c 00 00 | 40 e0 a5 01 4b ce d0 ff |.D..%,..|@...K...|
|00003680| 5b f5 d0 ff 70 1a 00 00 | 77 68 69 6c 65 20 28 3c |[...p...|while (<|
|00003690| 53 54 41 54 55 53 3e 29 | 20 7b 0d 00 00 2c 00 00 |STATUS>)| {...,..|
|000036a0| 25 34 00 00 40 f0 49 02 | 6b 9f d0 ff 7b c6 d0 ff |%4..@.I.|k...{...|
|000036b0| 70 1a 00 00 20 20 20 20 | 6e 65 78 74 20 69 66 20 |p... |next if |
|000036c0| 2f 5e 28 74 63 70 7c 75 | 64 70 29 2f 3b 0d 00 00 |/^(tcp|u|dp)/;...|
|000036d0| 00 34 00 00 25 24 00 00 | 40 60 ea 00 8b 70 d0 ff |.4..%$..|@`...p..|
|000036e0| 9b 97 d0 ff 70 1a 00 00 | 20 20 20 20 70 72 69 6e |....p...| prin|
|000036f0| 74 3b 0d 00 00 24 00 00 | 25 1c 00 00 40 70 17 00 |t;...$..|%...@p..|
|00003700| ab 41 d0 ff bb 68 d0 ff | 70 1a 00 00 7d 0d 00 00 |.A...h..|p...}...|
|00003710| 00 1c 00 00 a5 6c 00 00 | 40 f0 c0 03 cb 12 d0 ff |.....l..|@.......|
|00003720| db 39 d0 ff 70 1a 00 00 | 63 6c 6f 73 65 20 53 54 |.9..p...|close ST|
|00003730| 41 54 55 53 20 7c 7c 20 | 64 69 65 20 22 62 61 64 |ATUS || |die "bad|
|00003740| 20 6e 65 74 73 74 61 74 | 3a 20 24 21 20 24 3f 22 | netstat|: $! $?"|
|00003750| 3b 0d 08 65 0c e3 82 00 | 12 e1 82 00 00 00 00 00 |;..e....|........|
|00003760| 08 6e 64 6c 12 00 00 00 | 00 00 00 00 07 62 65 20 |.ndl....|.....be |
|00003770| 18 e4 82 00 18 e4 82 00 | 00 00 00 00 00 6c 00 00 |........|.....l..|
|00003780| a5 34 00 00 40 00 00 00 | 3b fe cf ff fb 0a d0 ff |.4..@...|;.......|
|00003790| 00 00 00 00 0d 08 61 6d | 18 e5 82 00 00 00 00 00 |......am|........|
|000037a0| 07 73 69 67 14 e6 82 00 | 14 e6 82 00 00 00 00 00 |.sig....|........|
|000037b0| 00 34 00 00 05 80 00 00 | 00 c0 77 07 6b a5 cf ff |.4......|..w.k...|
|000037c0| 4b d4 cf ff 20 22 00 00 | 49 66 20 6f 6e 65 20 63 |K... "..|If one c|
|000037d0| 61 6e 20 62 65 20 73 75 | 72 65 20 74 68 61 74 20 |an be su|re that |
|000037e0| 61 20 70 61 72 74 69 63 | 75 6c 61 72 20 70 72 6f |a partic|ular pro|
|000037f0| 67 72 61 6d 20 69 73 20 | 61 20 50 65 72 6c 20 73 |gram is |a Perl s|
|00003800| 63 72 69 70 74 20 74 68 | 61 74 20 69 73 20 65 78 |cript th|at is ex|
|00003810| 70 65 63 74 69 6e 67 20 | 66 69 6c 65 6e 61 6d 65 |pecting |filename|
|00003820| 73 20 69 6e 20 40 41 52 | 47 56 2c 20 74 68 65 20 |s in @AR|GV, the |
|00003830| 00 80 00 00 a5 78 00 00 | 40 54 9c 03 44 6d cf ff |.....x..|@T..Dm..|
|00003840| 24 9c cf ff 20 22 00 00 | 63 6c 65 76 65 72 20 70 |$... "..|clever p|
|00003850| 72 6f 67 72 61 6d 6d 65 | 72 20 63 61 6e 20 77 72 |rogramme|r can wr|
|00003860| 69 74 65 20 73 6f 6d 65 | 74 68 69 6e 67 20 6c 69 |ite some|thing li|
|00003870| 6b 65 20 74 68 69 73 3a | 0d 08 61 6c 14 00 00 00 |ke this:|..al....|
|00003880| 00 00 00 00 07 72 61 6e | 12 e7 82 00 12 e7 82 00 |.....ran|........|
|00003890| 00 00 00 00 07 20 63 68 | 0c e8 82 00 12 e7 82 00 |..... ch|........|
|000038a0| 0c e8 82 00 00 00 00 00 | 00 78 00 00 a5 70 00 00 |........|.x...p..|
|000038b0| 40 20 36 04 3d 06 cf ff | 4d 2d cf ff 70 1a 00 00 |@ 6.=...|M-..p...|
|000038c0| 24 20 70 72 6f 67 72 61 | 6d 20 66 31 20 22 63 6d |$ progra|m f1 "cm|
|000038d0| 64 31 7c 22 20 2d 20 66 | 32 20 22 63 6d 64 32 7c |d1|" - f|2 "cmd2||
|000038e0| 22 20 66 33 20 3c 20 74 | 6d 70 66 69 6c 65 0d 08 |" f3 < t|mpfile..|
|000038f0| 0c e9 82 00 12 e7 82 00 | 00 00 00 00 08 2c 20 74 |........|....., t|
|00003900| 12 00 00 00 00 00 00 00 | 07 20 69 6e 18 ea 82 00 |........|. in....|
|00003910| 18 ea 82 00 00 00 00 00 | 00 70 00 00 a5 24 00 00 |........|.p...$..|
|00003920| 40 00 00 00 ad f1 ce ff | 6d fe ce ff 00 00 00 00 |@.......|m.......|
|00003930| 0d 08 74 68 18 eb 82 00 | 00 00 00 00 00 24 00 00 |..th....|.....$..|
|00003940| 85 a8 00 00 00 e8 88 07 | dd 98 ce ff bd c7 ce ff |........|........|
|00003950| 20 22 00 00 61 6e 64 20 | 69 72 72 65 73 70 65 63 | "..and |irrespec|
|00003960| 74 69 76 65 20 6f 66 20 | 77 68 69 63 68 20 73 68 |tive of |which sh|
|00003970| 65 6c 6c 20 69 74 27 73 | 20 63 61 6c 6c 65 64 20 |ell it's| called |
|00003980| 66 72 6f 6d 2c 20 74 68 | 65 20 50 65 72 6c 20 70 |from, th|e Perl p|
|00003990| 72 6f 67 72 61 6d 20 77 | 69 6c 6c 20 72 65 61 64 |rogram w|ill read|
|000039a0| 20 66 72 6f 6d 20 74 68 | 65 20 66 69 6c 65 20 07 | from th|e file .|
|000039b0| 06 ec 82 00 06 ec 82 00 | 00 00 00 00 66 31 08 63 |........|....f1.c|
|000039c0| 06 ed 82 00 00 00 00 00 | 2c 20 74 68 65 20 70 72 |........|, the pr|
|000039d0| 6f 63 65 73 73 20 07 69 | 06 ee 82 00 06 ee 82 00 |ocess .i|........|
|000039e0| 00 00 00 00 00 a8 00 00 | 85 ec 00 00 00 3c 8f 07 |........|.....<..|
|000039f0| b6 60 ce ff 96 8f ce ff | ba 1f 00 00 63 6d 64 31 |.`......|....cmd1|
|00003a00| 08 20 6d 65 06 ef 82 00 | 00 00 00 00 2c 20 73 74 |. me....|...., st|
|00003a10| 61 6e 64 61 72 64 20 69 | 6e 70 75 74 20 28 07 74 |andard i|nput (.t|
|00003a20| 06 f0 82 00 06 f0 82 00 | 00 00 00 00 74 6d 70 66 |........|....tmpf|
|00003a30| 69 6c 65 08 06 f1 82 00 | 00 00 00 00 20 69 6e 20 |ile.....|.... in |
|00003a40| 74 68 69 73 20 63 61 73 | 65 29 2c 20 74 68 65 20 |this cas|e), the |
|00003a50| 07 78 82 00 06 f2 82 00 | 06 f2 82 00 00 00 00 00 |.x......|........|
|00003a60| 66 32 08 67 06 f3 82 00 | 00 00 00 00 20 66 69 6c |f2.g....|.... fil|
|00003a70| 65 2c 20 74 68 65 20 07 | 06 f4 82 00 06 f4 82 00 |e, the .|........|
|00003a80| 00 00 00 00 63 6d 64 32 | 08 20 74 68 06 f5 82 00 |....cmd2|. th....|
|00003a90| 00 00 00 00 20 63 6f 6d | 6d 61 6e 64 2c 20 61 6e |.... com|mand, an|
|00003aa0| 64 20 66 69 6e 61 6c 6c | 79 20 74 68 65 20 07 73 |d finall|y the .s|
|00003ab0| 06 f6 82 00 06 f6 82 00 | 00 00 00 00 66 33 08 70 |........|....f3.p|
|00003ac0| 06 f7 82 00 00 00 00 00 | 20 66 69 6c 65 2e 20 20 |........| file. |
|00003ad0| 00 ec 00 00 a5 38 00 00 | 40 b4 29 01 8f 28 ce ff |.....8..|@.)..(..|
|00003ae0| 6f 57 ce ff 20 22 00 00 | 50 72 65 74 74 79 20 6e |oW.. "..|Pretty n|
|00003af0| 69 66 74 79 2c 20 65 68 | 3f 0d 07 24 14 f8 82 00 |ifty, eh|?..$....|
|00003b00| 14 f8 82 00 00 00 00 00 | 00 38 00 00 a5 ac 00 00 |........|.8......|
|00003b10| 40 64 79 07 b8 b9 cd ff | 98 e8 cd ff 20 22 00 00 |@dy.....|.... "..|
|00003b20| 59 6f 75 20 6d 69 67 68 | 74 20 6e 6f 74 69 63 65 |You migh|t notice|
|00003b30| 20 74 68 61 74 20 79 6f | 75 20 63 6f 75 6c 64 20 | that yo|u could |
|00003b40| 75 73 65 20 62 61 63 6b | 74 69 63 6b 73 20 66 6f |use back|ticks fo|
|00003b50| 72 20 6d 75 63 68 20 74 | 68 65 20 73 61 6d 65 20 |r much t|he same |
|00003b60| 65 66 66 65 63 74 20 61 | 73 20 6f 70 65 6e 69 6e |effect a|s openin|
|00003b70| 67 20 61 20 70 69 70 65 | 20 66 6f 72 20 72 65 61 |g a pipe| for rea|
|00003b80| 64 69 6e 67 3a 0d 08 26 | 14 00 00 00 00 00 00 00 |ding:..&|........|
|00003b90| 07 3b 20 20 12 f9 82 00 | 12 f9 82 00 00 00 00 00 |.; ....|........|
|00003ba0| 07 67 79 0d 0c fa 82 00 | 12 f9 82 00 0c fa 82 00 |.gy.....|........|
|00003bb0| 00 00 00 00 00 ac 00 00 | 25 4c 00 00 40 00 65 04 |........|%L..@.e.|
|00003bc0| b1 52 cd ff c1 79 cd ff | 70 1a 00 00 70 72 69 6e |.R...y..|p...prin|
|00003bd0| 74 20 67 72 65 70 20 7b | 20 21 2f 5e 28 74 63 70 |t grep {| !/^(tcp|
|00003be0| 7c 75 64 70 29 2f 20 7d | 20 60 6e 65 74 73 74 61 ||udp)/ }| `netsta|
|00003bf0| 74 20 2d 61 6e 20 32 3e | 26 31 60 3b 0d 00 00 00 |t -an 2>|&1`;....|
|00003c00| 00 4c 00 00 a5 5c 00 00 | 40 80 32 02 d1 23 cd ff |.L...\..|@.2..#..|
|00003c10| e1 4a cd ff 70 1a 00 00 | 64 69 65 20 22 62 61 64 |.J..p...|die "bad|
|00003c20| 20 6e 65 74 73 74 61 74 | 22 20 69 66 20 24 3f 3b | netstat|" if $?;|
|00003c30| 0d 08 00 00 0c fb 82 00 | 12 f9 82 00 00 00 00 00 |........|........|
|00003c40| 08 20 28 73 12 00 00 00 | 00 00 00 00 07 20 24 43 |. (s....|..... $C|
|00003c50| 18 fc 82 00 18 fc 82 00 | 00 00 00 00 00 5c 00 00 |........|.....\..|
|00003c60| 01 10 00 00 40 00 00 00 | 00 00 00 00 00 10 00 00 |....@...|........|
|00003c70| 02 18 00 00 38 07 00 00 | 00 00 00 00 18 fc 82 00 |....8...|........|
|00003c80| 00 00 00 00 00 18 00 00 | a5 30 00 00 40 00 00 00 |........|.0..@...|
|00003c90| dc 67 cb ff 9c 74 cb ff | 00 00 00 00 16 00 00 00 |.g...t..|........|
|00003ca0| b0 fc 07 00 00 00 00 00 | 0d 08 20 20 18 fd 82 00 |........|.. ....|
|00003cb0| 00 00 00 00 00 30 00 00 | 05 88 00 00 00 e4 83 07 |.....0..|........|
|00003cc0| 0c 0f cb ff ec 3d cb ff | 20 22 00 00 57 68 69 6c |.....=..| "..Whil|
|00003cd0| 65 20 74 68 69 73 20 69 | 73 20 74 72 75 65 20 6f |e this i|s true o|
|00003ce0| 6e 20 74 68 65 20 73 75 | 72 66 61 63 65 2c 20 69 |n the su|rface, i|
|00003cf0| 74 27 73 20 6d 75 63 68 | 20 6d 6f 72 65 20 65 66 |t's much| more ef|
|00003d00| 66 69 63 69 65 6e 74 20 | 74 6f 20 70 72 6f 63 65 |ficient |to proce|
|00003d10| 73 73 20 74 68 65 20 66 | 69 6c 65 20 6f 6e 65 20 |ss the f|ile one |
|00003d20| 6c 69 6e 65 20 6f 72 20 | 72 65 63 6f 72 64 20 61 |line or |record a|
|00003d30| 74 20 61 20 74 69 6d 65 | 20 00 00 00 00 88 00 00 |t a time| .......|
|00003d40| 05 84 00 00 00 68 cc 07 | e5 d6 ca ff c5 05 cb ff |.....h..|........|
|00003d50| 20 22 00 00 62 65 63 61 | 75 73 65 20 74 68 65 6e | "..beca|use then|
|00003d60| 20 79 6f 75 20 64 6f 6e | 27 74 20 68 61 76 65 20 | you don|'t have |
|00003d70| 74 6f 20 72 65 61 64 20 | 74 68 65 20 77 68 6f 6c |to read |the whol|
|00003d80| 65 20 74 68 69 6e 67 20 | 69 6e 74 6f 20 6d 65 6d |e thing |into mem|
|00003d90| 6f 72 79 20 61 74 20 6f | 6e 63 65 2e 20 49 74 20 |ory at o|nce. It |
|00003da0| 61 6c 73 6f 20 67 69 76 | 65 73 20 79 6f 75 20 66 |also giv|es you f|
|00003db0| 69 6e 65 72 20 63 6f 6e | 74 72 6f 6c 20 6f 66 20 |iner con|trol of |
|00003dc0| 00 84 00 00 a5 78 00 00 | 40 50 95 05 be 9e ca ff |.....x..|@P......|
|00003dd0| 9e cd ca ff 20 22 00 00 | 74 68 65 20 77 68 6f 6c |.... "..|the whol|
|00003de0| 65 20 70 72 6f 63 65 73 | 73 2c 20 6c 65 74 74 69 |e proces|s, letti|
|00003df0| 6e 67 20 79 6f 75 20 74 | 6f 20 6b 69 6c 6c 20 6f |ng you t|o kill o|
|00003e00| 66 66 20 74 68 65 20 63 | 68 69 6c 64 20 70 72 6f |ff the c|hild pro|
|00003e10| 63 65 73 73 20 65 61 72 | 6c 79 20 69 66 20 79 6f |cess ear|ly if yo|
|00003e20| 75 27 64 20 6c 69 6b 65 | 2e 0d 07 00 14 fe 82 00 |u'd like|........|
|00003e30| 14 fe 82 00 00 00 00 00 | 00 78 00 00 85 a8 00 00 |........|.x......|
|00003e40| 00 68 f3 07 e7 2f ca ff | c7 5e ca ff 20 22 00 00 |.h.../..|.^.. "..|
|00003e50| 42 65 20 63 61 72 65 66 | 75 6c 20 74 6f 20 63 68 |Be caref|ul to ch|
|00003e60| 65 63 6b 20 62 6f 74 68 | 20 74 68 65 20 6f 70 65 |eck both| the ope|
|00003e70| 6e 28 29 20 61 6e 64 20 | 74 68 65 20 63 6c 6f 73 |n() and |the clos|
|00003e80| 65 28 29 20 72 65 74 75 | 72 6e 20 76 61 6c 75 65 |e() retu|rn value|
|00003e90| 73 2e 20 20 49 66 20 79 | 6f 75 27 72 65 20 07 00 |s. If y|ou're ..|
|00003ea0| 11 ff 82 00 14 fe 82 00 | 11 ff 82 00 00 00 00 00 |........|........|
|00003eb0| 77 72 69 74 69 6e 67 08 | 11 00 00 00 14 fe 82 00 |writing.|........|
|00003ec0| 00 00 00 00 20 74 6f 20 | 61 20 70 69 70 65 2c 20 |.... to |a pipe, |
|00003ed0| 79 6f 75 20 73 68 6f 75 | 6c 64 20 61 6c 73 6f 20 |you shou|ld also |
|00003ee0| 00 a8 00 00 05 84 00 00 | 00 88 d9 07 c0 f7 c9 ff |........|........|
|00003ef0| a0 26 ca ff 20 22 00 00 | 74 72 61 70 20 53 49 47 |.&.. "..|trap SIG|
|00003f00| 50 49 50 45 2e 20 20 4f | 74 68 65 72 77 69 73 65 |PIPE. O|therwise|
|00003f10| 2c 20 74 68 69 6e 6b 20 | 6f 66 20 77 68 61 74 20 |, think |of what |
|00003f20| 68 61 70 70 65 6e 73 20 | 77 68 65 6e 20 79 6f 75 |happens |when you|
|00003f30| 20 73 74 61 72 74 20 75 | 70 20 61 20 70 69 70 65 | start u|p a pipe|
|00003f40| 20 74 6f 20 61 20 63 6f | 6d 6d 61 6e 64 20 74 68 | to a co|mmand th|
|00003f50| 61 74 20 64 6f 65 73 6e | 27 74 20 65 78 69 73 74 |at doesn|'t exist|
|00003f60| 3a 20 00 00 00 84 00 00 | 05 8c 00 00 00 78 e6 07 |: ......|.....x..|
|00003f70| 99 bf c9 ff 79 ee c9 ff | 20 22 00 00 74 68 65 20 |....y...| "..the |
|00003f80| 6f 70 65 6e 28 29 20 77 | 69 6c 6c 20 69 6e 20 61 |open() w|ill in a|
|00003f90| 6c 6c 20 6c 69 6b 65 6c | 69 68 6f 6f 64 20 73 75 |ll likel|ihood su|
|00003fa0| 63 63 65 65 64 20 28 69 | 74 20 6f 6e 6c 79 20 72 |cceed (i|t only r|
|00003fb0| 65 66 6c 65 63 74 73 20 | 74 68 65 20 66 6f 72 6b |eflects |the fork|
|00003fc0| 28 29 27 73 20 73 75 63 | 63 65 73 73 29 2c 20 62 |()'s suc|cess), b|
|00003fd0| 75 74 20 74 68 65 6e 20 | 79 6f 75 72 20 6f 75 74 |ut then |your out|
|00003fe0| 70 75 74 20 77 69 6c 6c | 20 66 61 69 6c 2d 2d 00 |put will| fail--.|
|00003ff0| 00 8c 00 00 05 80 00 00 | 00 d0 dc 07 72 87 c9 ff |........|....r...|
|00004000| 52 b6 c9 ff 20 22 00 00 | 73 70 65 63 74 61 63 75 |R... "..|spectacu|
|00004010| 6c 61 72 6c 79 2e 20 20 | 50 65 72 6c 20 63 61 6e |larly. |Perl can|
|00004020| 27 74 20 6b 6e 6f 77 20 | 77 68 65 74 68 65 72 20 |'t know |whether |
|00004030| 74 68 65 20 63 6f 6d 6d | 61 6e 64 20 77 6f 72 6b |the comm|and work|
|00004040| 65 64 20 62 65 63 61 75 | 73 65 20 79 6f 75 72 20 |ed becau|se your |
|00004050| 63 6f 6d 6d 61 6e 64 20 | 69 73 20 61 63 74 75 61 |command |is actua|
|00004060| 6c 6c 79 20 72 75 6e 6e | 69 6e 67 20 69 6e 20 00 |lly runn|ing in .|
|00004070| 00 80 00 00 05 84 00 00 | 00 a0 e8 07 4b 4f c9 ff |........|....KO..|
|00004080| 2b 7e c9 ff 20 22 00 00 | 61 20 73 65 70 61 72 61 |+~.. "..|a separa|
|00004090| 74 65 20 70 72 6f 63 65 | 73 73 20 77 68 6f 73 65 |te proce|ss whose|
|000040a0| 20 65 78 65 63 28 29 20 | 6d 69 67 68 74 20 68 61 | exec() |might ha|
|000040b0| 76 65 20 66 61 69 6c 65 | 64 2e 20 20 54 68 65 72 |ve faile|d. Ther|
|000040c0| 65 66 6f 72 65 2c 20 77 | 68 69 6c 65 20 72 65 61 |efore, w|hile rea|
|000040d0| 64 65 72 73 20 6f 66 20 | 62 6f 67 75 73 20 63 6f |ders of |bogus co|
|000040e0| 6d 6d 61 6e 64 73 20 72 | 65 74 75 72 6e 20 6a 75 |mmands r|eturn ju|
|000040f0| 73 74 20 00 00 84 00 00 | 05 84 00 00 00 c0 77 07 |st .....|......w.|
|00004100| 24 17 c9 ff 04 46 c9 ff | 20 22 00 00 61 20 71 75 |$....F..| "..a qu|
|00004110| 69 63 6b 20 65 6e 64 20 | 6f 66 20 66 69 6c 65 2c |ick end |of file,|
|00004120| 20 77 72 69 74 65 72 73 | 20 74 6f 20 62 6f 67 75 | writers| to bogu|
|00004130| 73 20 63 6f 6d 6d 61 6e | 64 20 77 69 6c 6c 20 74 |s comman|d will t|
|00004140| 72 69 67 67 65 72 20 61 | 20 73 69 67 6e 61 6c 20 |rigger a| signal |
|00004150| 74 68 65 79 27 64 20 62 | 65 74 74 65 72 20 62 65 |they'd b|etter be|
|00004160| 20 70 72 65 70 61 72 65 | 64 20 74 6f 20 68 61 6e | prepare|d to han|
|00004170| 64 6c 65 2e 20 20 00 00 | 00 84 00 00 a5 50 00 00 |dle. ..|.....P..|
|00004180| 40 4c b6 00 fd de c8 ff | dd 0d c9 ff 20 22 00 00 |@L......|.... "..|
|00004190| 43 6f 6e 73 69 64 65 72 | 3a 0d 08 65 14 00 00 00 |Consider|:..e....|
|000041a0| 00 00 00 00 07 73 3b 0d | 12 00 83 00 12 00 83 00 |.....s;.|........|
|000041b0| 00 00 00 00 07 6e 63 74 | 0c 01 83 00 12 00 83 00 |.....nct|........|
|000041c0| 0c 01 83 00 00 00 00 00 | 00 50 00 00 25 2c 00 00 |........|.P..%,..|
|000041d0| 40 50 bd 01 f6 77 c8 ff | 06 9f c8 ff 70 1a 00 00 |@P...w..|....p...|
|000041e0| 6f 70 65 6e 28 46 48 2c | 20 22 7c 62 6f 67 75 73 |open(FH,| "|bogus|
|000041f0| 22 29 3b 0d 00 2c 00 00 | 25 2c 00 00 40 e0 a5 01 |");..,..|%,..@...|
|00004200| 16 49 c8 ff 26 70 c8 ff | 70 1a 00 00 70 72 69 6e |.I..&p..|p...prin|
|00004210| 74 20 46 48 20 22 62 61 | 6e 67 5c 6e 22 3b 0d 00 |t FH "ba|ng\n";..|
|00004220| 00 2c 00 00 a5 4c 00 00 | 40 f0 d2 00 36 1a c8 ff |.,...L..|@...6...|
|00004230| 46 41 c8 ff 70 1a 00 00 | 63 6c 6f 73 65 20 46 48 |FA..p...|close FH|
|00004240| 3b 0d 08 6c 0c 02 83 00 | 12 00 83 00 00 00 00 00 |;..l....|........|
|00004250| 08 65 20 70 12 00 00 00 | 00 00 00 00 07 20 6d 65 |.e p....|..... me|
|00004260| 18 03 83 00 18 03 83 00 | 00 00 00 00 00 4c 00 00 |........|.....L..|
|00004270| a5 34 00 00 40 00 00 00 | a6 05 c8 ff 66 12 c8 ff |.4..@...|....f...|
|00004280| 00 00 00 00 0d 08 74 69 | 18 04 83 00 00 00 00 00 |......ti|........|
|00004290| 07 72 6f 63 0a 05 83 00 | 0a 05 83 00 00 00 00 00 |.roc....|........|
|000042a0| 00 34 00 00 a5 30 00 00 | 40 9e 17 01 06 a5 c7 ff |.4...0..|@.......|
|000042b0| b6 db c7 ff 18 2b 00 00 | 46 69 6c 65 68 61 6e 64 |.....+..|Filehand|
|000042c0| 6c 65 73 0d 08 6c 20 70 | 0a 06 83 00 00 00 00 00 |les..l p|........|
|000042d0| 00 30 00 00 05 80 00 00 | 00 98 e7 07 d1 4f c7 ff |.0......|.....O..|
|000042e0| b1 7e c7 ff 20 22 00 00 | 42 6f 74 68 20 74 68 65 |.~.. "..|Both the|
|000042f0| 20 6d 61 69 6e 20 70 72 | 6f 63 65 73 73 20 61 6e | main pr|ocess an|
|00004300| 64 20 74 68 65 20 63 68 | 69 6c 64 20 70 72 6f 63 |d the ch|ild proc|
|00004310| 65 73 73 20 73 68 61 72 | 65 20 74 68 65 20 73 61 |ess shar|e the sa|
|00004320| 6d 65 20 53 54 44 49 4e | 2c 20 53 54 44 4f 55 54 |me STDIN|, STDOUT|
|00004330| 20 61 6e 64 20 53 54 44 | 45 52 52 20 66 69 6c 65 | and STD|ERR file|
|00004340| 68 61 6e 64 6c 65 73 2e | 20 20 49 66 20 00 00 00 |handles.| If ...|
|00004350| 00 80 00 00 05 84 00 00 | 00 60 ce 07 aa 17 c7 ff |........|.`......|
|00004360| 8a 46 c7 ff 20 22 00 00 | 62 6f 74 68 20 70 72 6f |.F.. "..|both pro|
|00004370| 63 65 73 73 65 73 20 74 | 72 79 20 74 6f 20 61 63 |cesses t|ry to ac|
|00004380| 63 65 73 73 20 74 68 65 | 6d 20 61 74 20 6f 6e 63 |cess the|m at onc|
|00004390| 65 2c 20 73 74 72 61 6e | 67 65 20 74 68 69 6e 67 |e, stran|ge thing|
|000043a0| 73 20 63 61 6e 20 68 61 | 70 70 65 6e 2e 20 20 59 |s can ha|ppen. Y|
|000043b0| 6f 75 20 6d 61 79 20 77 | 61 6e 74 20 74 6f 20 63 |ou may w|ant to c|
|000043c0| 6c 6f 73 65 20 6f 72 20 | 72 65 6f 70 65 6e 20 74 |lose or |reopen t|
|000043d0| 68 65 20 00 00 84 00 00 | 05 84 00 00 00 70 b8 07 |he .....|.....p..|
|000043e0| 83 df c6 ff 63 0e c7 ff | 20 22 00 00 66 69 6c 65 |....c...| "..file|
|000043f0| 68 61 6e 64 6c 65 73 20 | 66 6f 72 20 74 68 65 20 |handles |for the |
|00004400| 63 68 69 6c 64 2e 20 20 | 59 6f 75 20 63 61 6e 20 |child. |You can |
|00004410| 67 65 74 20 61 72 6f 75 | 6e 64 20 74 68 69 73 20 |get arou|nd this |
|00004420| 62 79 20 6f 70 65 6e 69 | 6e 67 20 79 6f 75 72 20 |by openi|ng your |
|00004430| 70 69 70 65 20 77 69 74 | 68 20 6f 70 65 6e 28 29 |pipe wit|h open()|
|00004440| 2c 20 62 75 74 20 6f 6e | 20 73 6f 6d 65 20 73 79 |, but on| some sy|
|00004450| 73 74 65 6d 73 20 00 00 | 00 84 00 00 a5 64 00 00 |stems ..|.....d..|
|00004460| 40 38 48 04 5c a7 c6 ff | 3c d6 c6 ff 20 22 00 00 |@8H.\...|<... "..|
|00004470| 74 68 69 73 20 6d 65 61 | 6e 73 20 74 68 61 74 20 |this mea|ns that |
|00004480| 74 68 65 20 63 68 69 6c | 64 20 70 72 6f 63 65 73 |the chil|d proces|
|00004490| 73 20 63 61 6e 6e 6f 74 | 20 6f 75 74 6c 69 76 65 |s cannot| outlive|
|000044a0| 20 74 68 65 20 70 61 72 | 65 6e 74 2e 0d 07 00 00 | the par|ent.....|
|000044b0| 0a 07 83 00 0a 07 83 00 | 00 00 00 00 00 64 00 00 |........|.....d..|
|000044c0| a5 48 00 00 40 4c 32 02 | b5 30 c6 ff 65 67 c6 ff |.H..@L2.|.0..eg..|
|000044d0| 18 2b 00 00 42 61 63 6b | 67 72 6f 75 6e 64 20 50 |.+..Back|ground P|
|000044e0| 72 6f 63 65 73 73 65 73 | 0d 08 20 22 0a 08 83 00 |rocesses|.. "....|
|000044f0| 00 00 00 00 07 20 77 69 | 14 09 83 00 14 09 83 00 |..... wi|........|
|00004500| 00 00 00 00 00 48 00 00 | a5 74 00 00 40 70 92 03 |.....H..|.t..@p..|
|00004510| 80 db c5 ff 60 0a c6 ff | 20 22 00 00 59 6f 75 20 |....`...| "..You |
|00004520| 63 61 6e 20 72 75 6e 20 | 61 20 63 6f 6d 6d 61 6e |can run |a comman|
|00004530| 64 20 69 6e 20 74 68 65 | 20 62 61 63 6b 67 72 6f |d in the| backgro|
|00004540| 75 6e 64 20 77 69 74 68 | 3a 0d 08 00 14 00 00 00 |und with|:.......|
|00004550| 00 00 00 00 07 a1 82 00 | 12 0a 83 00 12 0a 83 00 |........|........|
|00004560| 00 00 00 00 07 20 61 6c | 0c 0b 83 00 12 0a 83 00 |..... al|........|
|00004570| 0c 0b 83 00 00 00 00 00 | 00 74 00 00 a5 54 00 00 |........|.t...T..|
|00004580| 40 00 77 01 79 74 c5 ff | 89 9b c5 ff 70 1a 00 00 |@.w.yt..|....p...|
|00004590| 73 79 73 74 65 6d 28 22 | 63 6d 64 20 26 22 29 3b |system("|cmd &");|
|000045a0| 0d 08 6e 64 0c 0c 83 00 | 12 0a 83 00 00 00 00 00 |..nd....|........|
|000045b0| 08 00 00 00 12 00 00 00 | 00 00 00 00 07 a2 82 00 |........|........|
|000045c0| 18 0d 83 00 18 0d 83 00 | 00 00 00 00 00 54 00 00 |........|.....T..|
|000045d0| a5 24 00 00 40 00 00 00 | e9 5f c5 ff a9 6c c5 ff |.$..@...|._...l..|
|000045e0| 00 00 00 00 0d 08 62 20 | 18 0e 83 00 00 00 00 00 |......b |........|
|000045f0| 00 24 00 00 05 7c 00 00 | 00 c0 f2 07 19 07 c5 ff |.$...|..|........|
|00004600| f9 35 c5 ff 20 22 00 00 | 54 68 65 20 63 6f 6d 6d |.5.. "..|The comm|
|00004610| 61 6e 64 27 73 20 53 54 | 44 4f 55 54 20 61 6e 64 |and's ST|DOUT and|
|00004620| 20 53 54 44 45 52 52 20 | 28 61 6e 64 20 70 6f 73 | STDERR |(and pos|
|00004630| 73 69 62 6c 79 20 53 54 | 44 49 4e 2c 20 64 65 70 |sibly ST|DIN, dep|
|00004640| 65 6e 64 69 6e 67 20 6f | 6e 20 79 6f 75 72 20 73 |ending o|n your s|
|00004650| 68 65 6c 6c 29 20 77 69 | 6c 6c 20 62 65 20 74 68 |hell) wi|ll be th|
|00004660| 65 20 73 61 6d 65 20 61 | 73 20 00 00 00 7c 00 00 |e same a|s ...|..|
|00004670| 05 80 00 00 00 44 96 07 | f2 ce c4 ff d2 fd c4 ff |.....D..|........|
|00004680| 20 22 00 00 74 68 65 20 | 70 61 72 65 6e 74 27 73 | "..the |parent's|
|00004690| 2e 20 20 59 6f 75 20 77 | 6f 6e 27 74 20 6e 65 65 |. You w|on't nee|
|000046a0| 64 20 74 6f 20 63 61 74 | 63 68 20 53 49 47 43 48 |d to cat|ch SIGCH|
|000046b0| 4c 44 20 62 65 63 61 75 | 73 65 20 6f 66 20 74 68 |LD becau|se of th|
|000046c0| 65 20 64 6f 75 62 6c 65 | 2d 66 6f 72 6b 20 74 61 |e double|-fork ta|
|000046d0| 6b 69 6e 67 20 70 6c 61 | 63 65 20 28 73 65 65 20 |king pla|ce (see |
|000046e0| 62 65 6c 6f 77 20 66 6f | 72 20 00 00 00 80 00 00 |below fo|r ......|
|000046f0| a5 34 00 00 40 c4 01 01 | cb 96 c4 ff ab c5 c4 ff |.4..@...|........|
|00004700| 20 22 00 00 6d 6f 72 65 | 20 64 65 74 61 69 6c 73 | "..more| details|
|00004710| 29 2e 0d 07 0a 0f 83 00 | 0a 0f 83 00 00 00 00 00 |).......|........|
|00004720| 00 34 00 00 a5 4c 00 00 | 40 76 15 04 24 20 c4 ff |.4...L..|@v..$ ..|
|00004730| d4 56 c4 ff 18 2b 00 00 | 43 6f 6d 70 6c 65 74 65 |.V...+..|Complete|
|00004740| 20 44 69 73 73 6f 63 69 | 61 74 69 6f 6e 20 6f 66 | Dissoci|ation of|
|00004750| 20 43 68 69 6c 64 20 66 | 72 6f 6d 20 50 61 72 65 | Child f|rom Pare|
|00004760| 6e 74 0d 08 0a 10 83 00 | 00 00 00 00 00 4c 00 00 |nt......|.....L..|
|00004770| 05 88 00 00 00 64 bb 07 | ef ca c3 ff cf f9 c3 ff |.....d..|........|
|00004780| 20 22 00 00 49 6e 20 73 | 6f 6d 65 20 63 61 73 65 | "..In s|ome case|
|00004790| 73 20 28 73 74 61 72 74 | 69 6e 67 20 73 65 72 76 |s (start|ing serv|
|000047a0| 65 72 20 70 72 6f 63 65 | 73 73 65 73 2c 20 66 6f |er proce|sses, fo|
|000047b0| 72 20 69 6e 73 74 61 6e | 63 65 29 20 79 6f 75 27 |r instan|ce) you'|
|000047c0| 6c 6c 20 77 61 6e 74 20 | 74 6f 20 63 6f 6d 70 6c |ll want |to compl|
|000047d0| 65 74 65 20 64 69 73 73 | 6f 63 69 61 74 65 20 74 |ete diss|ociate t|
|000047e0| 68 65 20 63 68 69 6c 64 | 20 70 72 6f 63 65 73 73 |he child| process|
|000047f0| 20 00 00 00 00 88 00 00 | 05 80 00 00 00 bc 84 07 | .......|........|
|00004800| c8 92 c3 ff a8 c1 c3 ff | 20 22 00 00 66 72 6f 6d |........| "..from|
|00004810| 20 74 68 65 20 70 61 72 | 65 6e 74 2e 20 20 54 68 | the par|ent. Th|
|00004820| 65 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 70 72 6f 63 |e follow|ing proc|
|00004830| 65 73 73 20 69 73 20 72 | 65 70 6f 72 74 65 64 20 |ess is r|eported |
|00004840| 74 6f 20 77 6f 72 6b 20 | 6f 6e 20 6d 6f 73 74 20 |to work |on most |
|00004850| 55 6e 69 78 69 73 68 20 | 73 79 73 74 65 6d 73 2e |Unixish |systems.|
|00004860| 20 20 4e 6f 6e 2d 55 6e | 69 78 20 75 73 65 72 73 | Non-Un|ix users|
|00004870| 20 00 00 00 00 80 00 00 | a5 68 00 00 40 70 c1 04 | .......|.h..@p..|
|00004880| a1 5a c3 ff 81 89 c3 ff | 20 22 00 00 73 68 6f 75 |.Z......| "..shou|
|00004890| 6c 64 20 63 68 65 63 6b | 20 74 68 65 69 72 20 59 |ld check| their Y|
|000048a0| 6f 75 72 5f 4f 53 3a 3a | 50 72 6f 63 65 73 73 20 |our_OS::|Process |
|000048b0| 6d 6f 64 75 6c 65 20 66 | 6f 72 20 6f 74 68 65 72 |module f|or other|
|000048c0| 20 73 6f 6c 75 74 69 6f | 6e 73 2e 0d 07 64 00 00 | solutio|ns...d..|
|000048d0| 13 11 83 00 13 11 83 00 | 00 00 00 00 00 68 00 00 |........|.....h..|
|000048e0| a5 a8 00 00 44 5c a0 06 | ca eb c2 ff aa 1a c3 ff |....D\..|........|
|000048f0| 20 22 00 00 12 61 69 74 | e8 35 00 00 00 00 00 00 | "...ait|.5......|
|00004900| 8f 12 00 00 70 17 00 00 | 00 00 00 00 4f 70 65 6e |....p...|....Open|
|00004910| 20 2f 64 65 76 2f 74 74 | 79 20 61 6e 64 20 75 73 | /dev/tt|y and us|
|00004920| 65 20 74 68 65 20 54 49 | 4f 43 4e 4f 54 54 59 20 |e the TI|OCNOTTY |
|00004930| 69 6f 63 74 6c 20 6f 6e | 20 69 74 2e 20 20 53 65 |ioctl on| it. Se|
|00004940| 65 20 74 68 65 20 63 68 | 61 70 74 65 72 20 07 00 |e the ch|apter ..|
|00004950| 10 12 83 00 13 11 83 00 | 10 12 83 00 00 00 00 00 |........|........|
|00004960| 74 74 79 28 34 29 08 0c | 10 00 00 00 13 11 83 00 |tty(4)..|........|
|00004970| 00 00 00 00 20 66 6f 72 | 20 64 65 74 61 69 6c 73 |.... for| details|
|00004980| 2e 0d 00 00 00 a8 00 00 | 25 48 00 00 44 d4 ea 01 |........|%H..D...|
|00004990| f3 7c c2 ff d3 ab c2 ff | 20 22 00 00 12 70 05 03 |.|......| "...p..|
|000049a0| e8 35 00 00 00 00 00 00 | 8f 12 00 f0 70 17 00 00 |.5......|....p...|
|000049b0| 00 00 00 00 43 68 61 6e | 67 65 20 64 69 72 65 63 |....Chan|ge direc|
|000049c0| 74 6f 72 79 20 74 6f 20 | 2f 0d 00 00 00 48 00 00 |tory to |/....H..|
|000049d0| 25 7c 00 00 44 d8 3c 06 | 1c 0e c2 ff fc 3c c2 ff |%|..D.<.|.....<..|
|000049e0| 20 22 00 00 12 1a 00 f0 | e8 35 00 00 00 00 00 00 | "......|.5......|
|000049f0| 8f 12 00 00 70 17 00 00 | 00 00 00 00 52 65 6f 70 |....p...|....Reop|
|00004a00| 65 6e 20 53 54 44 49 4e | 2c 20 53 54 44 4f 55 54 |en STDIN|, STDOUT|
|00004a10| 2c 20 61 6e 64 20 53 54 | 44 45 52 52 20 73 6f 20 |, and ST|DERR so |
|00004a20| 74 68 65 79 27 72 65 20 | 6e 6f 74 20 63 6f 6e 6e |they're |not conn|
|00004a30| 65 63 74 65 64 20 74 6f | 20 74 68 65 20 6f 6c 64 |ected to| the old|
|00004a40| 20 74 74 79 2e 0d 00 00 | 00 7c 00 00 a5 9c 00 00 | tty....|.|......|
|00004a50| 44 b8 96 02 45 9f c1 ff | 25 ce c1 ff 20 22 00 00 |D...E...|%... "..|
|00004a60| 12 31 17 f2 e8 35 00 00 | 00 00 00 00 8f 12 24 53 |.1...5..|......$S|
|00004a70| 70 17 00 00 00 00 00 00 | 07 3d 20 5c 14 13 83 00 |p.......|.= \....|
|00004a80| 13 11 83 00 14 13 83 00 | 00 00 00 00 42 61 63 6b |........|....Back|
|00004a90| 67 72 6f 75 6e 64 20 79 | 6f 75 72 73 65 6c 66 20 |ground y|ourself |
|00004aa0| 6c 69 6b 65 20 74 68 69 | 73 3a 0d 08 14 00 00 00 |like thi|s:......|
|00004ab0| 13 11 83 00 00 00 00 00 | 07 00 00 00 12 14 83 00 |........|........|
|00004ac0| 13 11 83 00 12 14 83 00 | 00 00 00 00 07 08 05 05 |........|........|
|00004ad0| 0c 15 83 00 13 11 83 00 | 12 14 83 00 0c 15 83 00 |........|........|
|00004ae0| 00 00 00 00 00 9c 00 00 | a5 5c 00 00 40 b0 30 01 |........|.\..@.0.|
|00004af0| 3e 38 c1 ff 4e 5f c1 ff | 70 1a 00 00 66 6f 72 6b |>8..N_..|p...fork|
|00004b00| 20 26 26 20 65 78 69 74 | 3b 0d 08 20 0c 16 83 00 | && exit|;.. ....|
|00004b10| 13 11 83 00 12 14 83 00 | 00 00 00 00 08 74 65 63 |........|.....tec|
|00004b20| 12 00 00 00 13 11 83 00 | 00 00 00 00 07 20 07 05 |........|..... ..|
|00004b30| 18 17 83 00 13 11 83 00 | 18 17 83 00 00 00 00 00 |........|........|
|00004b40| 00 5c 00 00 a5 44 00 00 | 40 00 00 00 ae 23 c1 ff |.\...D..|@....#..|
|00004b50| 6e 30 c1 ff 00 00 00 00 | 0d 08 74 20 18 18 83 00 |n0......|..t ....|
|00004b60| 13 11 83 00 00 00 00 00 | 08 6c 65 72 13 19 83 00 |........|.ler....|
|00004b70| 00 00 00 00 07 61 6c 61 | 0a 1a 83 00 0a 1a 83 00 |.....ala|........|
|00004b80| 00 00 00 00 00 44 00 00 | a5 34 00 00 40 70 9d 01 |.....D..|.4..@p..|
|00004b90| 0e c3 c0 ff be f9 c0 ff | 18 2b 00 00 53 61 66 65 |........|.+..Safe|
|00004ba0| 20 50 69 70 65 20 4f 70 | 65 6e 73 0d 08 20 79 6f | Pipe Op|ens.. yo|
|00004bb0| 0a 1b 83 00 00 00 00 00 | 00 34 00 00 05 7c 00 00 |........|.4...|..|
|00004bc0| 00 60 80 07 d9 6d c0 ff | b9 9c c0 ff 20 22 00 00 |.`...m..|.... "..|
|00004bd0| 41 6e 6f 74 68 65 72 20 | 69 6e 74 65 72 65 73 74 |Another |interest|
|00004be0| 69 6e 67 20 61 70 70 72 | 6f 61 63 68 20 74 6f 20 |ing appr|oach to |
|00004bf0| 49 50 43 20 69 73 20 6d | 61 6b 69 6e 67 20 79 6f |IPC is m|aking yo|
|00004c00| 75 72 20 73 69 6e 67 6c | 65 20 70 72 6f 67 72 61 |ur singl|e progra|
|00004c10| 6d 20 67 6f 20 6d 75 6c | 74 69 70 72 6f 63 65 73 |m go mul|tiproces|
|00004c20| 73 20 61 6e 64 20 63 6f | 6d 6d 75 6e 69 63 61 74 |s and co|mmunicat|
|00004c30| 65 20 00 00 00 7c 00 00 | 85 ac 00 00 00 58 c1 07 |e ...|..|.....X..|
|00004c40| b2 35 c0 ff 92 64 c0 ff | 20 22 00 00 62 65 74 77 |.5...d..| "..betw|
|00004c50| 65 65 6e 20 28 6f 72 20 | 65 76 65 6e 20 61 6d 6f |een (or |even amo|
|00004c60| 6e 67 73 74 29 20 79 6f | 75 72 73 65 6c 76 65 73 |ngst) yo|urselves|
|00004c70| 2e 20 20 54 68 65 20 6f | 70 65 6e 28 29 20 66 75 |. The o|pen() fu|
|00004c80| 6e 63 74 69 6f 6e 20 77 | 69 6c 6c 20 61 63 63 65 |nction w|ill acce|
|00004c90| 70 74 20 61 20 66 69 6c | 65 20 61 72 67 75 6d 65 |pt a fil|e argume|
|00004ca0| 6e 74 20 6f 66 20 65 69 | 74 68 65 72 20 07 6c 65 |nt of ei|ther .le|
|00004cb0| 0e 1c 83 00 0e 1c 83 00 | 00 00 00 00 22 2d 7c 22 |........|...."-|"|
|00004cc0| 08 66 74 65 0e 1d 83 00 | 00 00 00 00 20 6f 72 20 |.fte....|.... or |
|00004cd0| 07 48 00 00 0e 1e 83 00 | 0e 1e 83 00 00 00 00 00 |.H......|........|
|00004ce0| 00 ac 00 00 01 10 00 00 | 00 fc e0 07 00 00 00 00 |........|........|
|00004cf0| 00 10 00 00 02 18 00 00 | d4 08 00 00 00 00 00 00 |........|........|
|00004d00| 0e 1e 83 00 00 00 00 00 | 00 18 00 00 85 a0 00 00 |........|........|
|00004d10| 00 fc e0 07 0b 46 be ff | eb 74 be ff ba 1f 00 00 |.....F..|.t......|
|00004d20| 16 00 00 00 b0 fc 07 00 | 00 00 00 00 22 7c 2d 22 |........|...."|-"|
|00004d30| 08 20 61 20 0e 1f 83 00 | 00 00 00 00 20 74 6f 20 |. a ....|.... to |
|00004d40| 64 6f 20 61 20 76 65 72 | 79 20 69 6e 74 65 72 65 |do a ver|y intere|
|00004d50| 73 74 69 6e 67 20 74 68 | 69 6e 67 3a 20 69 74 20 |sting th|ing: it |
|00004d60| 66 6f 72 6b 73 20 61 20 | 63 68 69 6c 64 20 63 6f |forks a |child co|
|00004d70| 6e 6e 65 63 74 65 64 20 | 74 6f 20 74 68 65 20 66 |nnected |to the f|
|00004d80| 69 6c 65 68 61 6e 64 6c | 65 20 79 6f 75 27 76 65 |ilehandl|e you've|
|00004d90| 20 6f 70 65 6e 65 64 2e | 20 20 54 68 65 20 63 68 | opened.| The ch|
|00004da0| 69 6c 64 20 69 73 20 00 | 00 a0 00 00 05 80 00 00 |ild is .|........|
|00004db0| 00 b0 8d 07 e4 0d be ff | c4 3c be ff 20 22 00 00 |........|.<.. "..|
|00004dc0| 72 75 6e 6e 69 6e 67 20 | 74 68 65 20 73 61 6d 65 |running |the same|
|00004dd0| 20 70 72 6f 67 72 61 6d | 20 61 73 20 74 68 65 20 | program| as the |
|00004de0| 70 61 72 65 6e 74 2e 20 | 20 54 68 69 73 20 69 73 |parent. | This is|
|00004df0| 20 75 73 65 66 75 6c 20 | 66 6f 72 20 73 61 66 65 | useful |for safe|
|00004e00| 6c 79 20 6f 70 65 6e 69 | 6e 67 20 61 20 66 69 6c |ly openi|ng a fil|
|00004e10| 65 20 77 68 65 6e 20 72 | 75 6e 6e 69 6e 67 20 75 |e when r|unning u|
|00004e20| 6e 64 65 72 20 61 6e 20 | 00 80 00 00 85 9c 00 00 |nder an |........|
|00004e30| 00 a8 e9 07 bd d5 bd ff | 9d 04 be ff 20 22 00 00 |........|.... "..|
|00004e40| 61 73 73 75 6d 65 64 20 | 55 49 44 20 6f 72 20 47 |assumed |UID or G|
|00004e50| 49 44 2c 20 66 6f 72 20 | 65 78 61 6d 70 6c 65 2e |ID, for |example.|
|00004e60| 20 20 49 66 20 79 6f 75 | 20 6f 70 65 6e 20 61 20 | If you| open a |
|00004e70| 70 69 70 65 20 07 6d 2c | 11 20 83 00 11 20 83 00 |pipe .m,|. ... ..|
|00004e80| 00 00 00 00 74 6f 08 20 | 11 00 00 00 00 00 00 00 |....to. |........|
|00004e90| 20 6d 69 6e 75 73 2c 20 | 79 6f 75 20 63 61 6e 20 | minus, |you can |
|00004ea0| 77 72 69 74 65 20 74 6f | 20 74 68 65 20 66 69 6c |write to| the fil|
|00004eb0| 65 68 61 6e 64 6c 65 20 | 79 6f 75 20 6f 70 65 6e |ehandle |you open|
|00004ec0| 65 64 20 00 00 9c 00 00 | 85 a4 00 00 00 00 ec 07 |ed .....|........|
|00004ed0| 96 9d bd ff 76 cc bd ff | 20 22 00 00 61 6e 64 20 |....v...| "..and |
|00004ee0| 79 6f 75 72 20 6b 69 64 | 20 77 69 6c 6c 20 66 69 |your kid| will fi|
|00004ef0| 6e 64 20 69 74 20 69 6e | 20 68 69 73 20 53 54 44 |nd it in| his STD|
|00004f00| 49 4e 2e 20 20 49 66 20 | 79 6f 75 20 6f 70 65 6e |IN. If |you open|
|00004f10| 20 61 20 70 69 70 65 20 | 07 c8 82 00 11 21 83 00 | a pipe |.....!..|
|00004f20| 11 21 83 00 00 00 00 00 | 66 72 6f 6d 08 74 6f 20 |.!......|from.to |
|00004f30| 11 00 00 00 00 00 00 00 | 20 6d 69 6e 75 73 2c 20 |........| minus, |
|00004f40| 79 6f 75 20 63 61 6e 20 | 72 65 61 64 20 66 72 6f |you can |read fro|
|00004f50| 6d 20 74 68 65 20 66 69 | 6c 65 68 61 6e 64 6c 65 |m the fi|lehandle|
|00004f60| 20 79 6f 75 20 00 00 00 | 00 a4 00 00 a5 68 00 00 | you ...|.....h..|
|00004f70| 40 e4 a5 03 6f 65 bd ff | 4f 94 bd ff 20 22 00 00 |@...oe..|O... "..|
|00004f80| 6f 70 65 6e 65 64 20 77 | 68 61 74 65 76 65 72 20 |opened w|hatever |
|00004f90| 79 6f 75 72 20 6b 69 64 | 20 77 72 69 74 65 73 20 |your kid| writes |
|00004fa0| 74 6f 20 68 69 73 20 53 | 54 44 4f 55 54 2e 0d 07 |to his S|TDOUT...|
|00004fb0| 12 22 83 00 12 22 83 00 | 00 00 00 00 07 53 49 47 |."..."..|.....SIG|
|00004fc0| 0c 23 83 00 12 22 83 00 | 0c 23 83 00 00 00 00 00 |.#..."..|.#......|
|00004fd0| 00 68 00 00 25 28 00 00 | 40 40 19 01 68 fe bc ff |.h..%(..|@@..h...|
|00004fe0| 78 25 bd ff 70 1a 00 00 | 75 73 65 20 45 6e 67 6c |x%..p...|use Engl|
|00004ff0| 69 73 68 3b 0d 00 00 00 | 00 28 00 00 a5 58 00 00 |ish;....|.(...X..|
|00005000| 40 c0 d4 01 88 cf bc ff | 98 f6 bc ff 70 1a 00 00 |@.......|....p...|
|00005010| 6d 79 20 24 73 6c 65 65 | 70 5f 63 6f 75 6e 74 20 |my $slee|p_count |
|00005020| 3d 20 30 3b 0d 08 82 00 | 0c 24 83 00 12 22 83 00 |= 0;....|.$..."..|
|00005030| 00 00 00 00 08 ce 82 00 | 12 00 00 00 00 00 00 00 |........|........|
|00005040| 07 68 69 6c 18 25 83 00 | 18 25 83 00 00 00 00 00 |.hil.%..|.%......|
|00005050| 00 58 00 00 a5 48 00 00 | 40 00 00 00 f8 ba bc ff |.X...H..|@.......|
|00005060| b8 c7 bc ff 00 00 00 00 | 0d 08 20 20 18 26 83 00 |........|.. .&..|
|00005070| 00 00 00 00 07 49 46 4f | 12 27 83 00 12 27 83 00 |.....IFO|.'...'..|
|00005080| 00 00 00 00 07 74 65 6d | 0c 28 83 00 12 27 83 00 |.....tem|.(...'..|
|00005090| 0c 28 83 00 00 00 00 00 | 00 48 00 00 25 20 00 00 |.(......|.H..% ..|
|000050a0| 40 c0 5d 00 f8 69 bc ff | 08 91 bc ff 70 1a 00 00 |@.]..i..|....p...|
|000050b0| 64 6f 20 7b 0d 00 00 00 | 00 20 00 00 25 40 00 00 |do {....|. ..%@..|
|000050c0| 40 c0 4b 03 18 3b bc ff | 28 62 bc ff 70 1a 00 00 |@.K..;..|(b..p...|
|000050d0| 20 20 20 20 24 70 69 64 | 20 3d 20 6f 70 65 6e 28 | $pid| = open(|
|000050e0| 4b 49 44 5f 54 4f 5f 57 | 52 49 54 45 2c 20 22 7c |KID_TO_W|RITE, "||
|000050f0| 2d 22 29 3b 0d 00 00 00 | 00 40 00 00 25 34 00 00 |-");....|.@..%4..|
|00005100| 40 d0 78 02 38 0c bc ff | 48 33 bc ff 70 1a 00 00 |@.x.8...|H3..p...|
|00005110| 20 20 20 20 75 6e 6c 65 | 73 73 20 28 64 65 66 69 | unle|ss (defi|
|00005120| 6e 65 64 20 24 70 69 64 | 29 20 7b 0d 00 34 00 00 |ned $pid|) {..4..|
|00005130| 25 38 00 00 40 90 d6 02 | 58 dd bb ff 68 04 bc ff |%8..@...|X...h...|
|00005140| 70 1a 00 00 20 20 20 20 | 20 20 20 20 77 61 72 6e |p... | warn|
|00005150| 20 22 63 61 6e 6e 6f 74 | 20 66 6f 72 6b 3a 20 24 | "cannot| fork: $|
|00005160| 21 22 3b 0d 00 38 00 00 | 25 4c 00 00 40 00 65 04 |!";..8..|%L..@.e.|
|00005170| 78 ae bb ff 88 d5 bb ff | 70 1a 00 00 20 20 20 20 |x.......|p... |
|00005180| 20 20 20 20 64 69 65 20 | 22 62 61 69 6c 69 6e 67 | die |"bailing|
|00005190| 20 6f 75 74 22 20 69 66 | 20 24 73 6c 65 65 70 5f | out" if| $sleep_|
|000051a0| 63 6f 75 6e 74 2b 2b 20 | 3e 20 36 3b 0d 00 00 00 |count++ |> 6;....|
|000051b0| 00 4c 00 00 25 2c 00 00 | 40 70 8e 01 98 7f bb ff |.L..%,..|@p......|
|000051c0| a8 a6 bb ff 70 1a 00 00 | 20 20 20 20 20 20 20 20 |....p...| |
|000051d0| 73 6c 65 65 70 20 31 30 | 3b 0d 00 00 00 2c 00 00 |sleep 10|;....,..|
|000051e0| 25 20 00 00 40 30 75 00 | b8 50 bb ff c8 77 bb ff |% ..@0u.|.P...w..|
|000051f0| 70 1a 00 00 20 20 20 20 | 7d 0d 00 00 00 20 00 00 |p... |}.... ..|
|00005200| a5 58 00 00 40 30 ec 01 | d8 21 bb ff e8 48 bb ff |.X..@0..|.!...H..|
|00005210| 70 1a 00 00 7d 20 75 6e | 74 69 6c 20 64 65 66 69 |p...} un|til defi|
|00005220| 6e 65 64 20 24 70 69 64 | 3b 0d 08 05 0c 29 83 00 |ned $pid|;....)..|
|00005230| 12 27 83 00 00 00 00 00 | 08 08 05 05 12 00 00 00 |.'......|........|
|00005240| 00 00 00 00 07 05 05 05 | 18 2a 83 00 18 2a 83 00 |........|.*...*..|
|00005250| 00 00 00 00 00 58 00 00 | a5 48 00 00 40 00 00 00 |.....X..|.H..@...|
|00005260| 48 0d bb ff 08 1a bb ff | 00 00 00 00 0d 08 82 00 |H.......|........|
|00005270| 18 2b 83 00 00 00 00 00 | 07 da 82 00 12 2c 83 00 |.+......|.....,..|
|00005280| 12 2c 83 00 00 00 00 00 | 07 73 20 62 0c 2d 83 00 |.,......|.s b.-..|
|00005290| 12 2c 83 00 0c 2d 83 00 | 00 00 00 00 00 48 00 00 |.,...-..|.....H..|
|000052a0| 25 30 00 00 40 30 ec 01 | 48 bc ba ff 58 e3 ba ff |%0..@0..|H...X...|
|000052b0| 70 1a 00 00 69 66 20 28 | 24 70 69 64 29 20 7b 20 |p...if (|$pid) { |
|000052c0| 20 23 20 70 61 72 65 6e | 74 0d 00 00 00 30 00 00 | # paren|t....0..|
|000052d0| 25 3c 00 00 40 e0 1c 03 | 68 8d ba ff 78 b4 ba ff |%<..@...|h...x...|
|000052e0| 70 1a 00 00 20 20 20 20 | 70 72 69 6e 74 20 4b 49 |p... |print KI|
|000052f0| 44 5f 54 4f 5f 57 52 49 | 54 45 20 40 73 6f 6d 65 |D_TO_WRI|TE @some|
|00005300| 5f 64 61 74 61 3b 0d 00 | 00 3c 00 00 25 4c 00 00 |_data;..|.<..%L..|
|00005310| 40 00 65 04 88 5e ba ff | 98 85 ba ff 70 1a 00 00 |@.e..^..|....p...|
|00005320| 20 20 20 20 63 6c 6f 73 | 65 28 4b 49 44 5f 54 4f | clos|e(KID_TO|
|00005330| 5f 57 52 49 54 45 29 20 | 7c 7c 20 77 61 72 6e 20 |_WRITE) ||| warn |
|00005340| 22 6b 69 64 20 65 78 69 | 74 65 64 20 24 3f 22 3b |"kid exi|ted $?";|
|00005350| 0d 00 00 00 00 4c 00 00 | 25 30 00 00 40 c0 d4 01 |.....L..|%0..@...|
|00005360| a8 2f ba ff b8 56 ba ff | 70 1a 00 00 7d 20 65 6c |./...V..|p...} el|
|00005370| 73 65 20 7b 20 20 20 20 | 20 23 20 63 68 69 6c 64 |se { | # child|
|00005380| 0d 00 00 00 00 30 00 00 | 25 50 00 00 40 c0 c2 04 |.....0..|%P..@...|
|00005390| c8 00 ba ff d8 27 ba ff | 70 1a 00 00 20 20 20 20 |.....'..|p... |
|000053a0| 28 24 45 55 49 44 2c 20 | 24 45 47 49 44 29 20 3d |($EUID, |$EGID) =|
|000053b0| 20 28 24 55 49 44 2c 20 | 24 47 49 44 29 3b 20 23 | ($UID, |$GID); #|
|000053c0| 20 73 75 69 64 20 70 72 | 6f 67 73 20 6f 6e 6c 79 | suid pr|ogs only|
|000053d0| 0d 00 00 00 00 50 00 00 | 25 38 00 00 40 90 d6 02 |.....P..|%8..@...|
|000053e0| e8 d1 b9 ff f8 f8 b9 ff | 70 1a 00 00 20 20 20 20 |........|p... |
|000053f0| 6f 70 65 6e 20 28 46 49 | 4c 45 2c 20 22 3e 20 2f |open (FI|LE, "> /|
|00005400| 73 61 66 65 2f 66 69 6c | 65 22 29 0d 00 38 00 00 |safe/fil|e")..8..|
|00005410| 25 44 00 00 40 d0 ef 03 | 08 a3 b9 ff 18 ca b9 ff |%D..@...|........|
|00005420| 70 1a 00 00 20 20 20 20 | 20 20 20 20 7c 7c 20 64 |p... | || d|
|00005430| 69 65 20 22 63 61 6e 27 | 74 20 6f 70 65 6e 20 2f |ie "can'|t open /|
|00005440| 73 61 66 65 2f 66 69 6c | 65 3a 20 24 21 22 3b 0d |safe/fil|e: $!";.|
|00005450| 00 44 00 00 25 30 00 00 | 40 30 ec 01 28 74 b9 ff |.D..%0..|@0..(t..|
|00005460| 38 9b b9 ff 70 1a 00 00 | 20 20 20 20 77 68 69 6c |8...p...| whil|
|00005470| 65 20 28 3c 53 54 44 49 | 4e 3e 29 20 7b 0d 00 00 |e (<STDI|N>) {...|
|00005480| 00 30 00 00 25 4c 00 00 | 40 50 ab 04 48 45 b9 ff |.0..%L..|@P..HE..|
|00005490| 58 6c b9 ff 70 1a 00 00 | 20 20 20 20 20 20 20 20 |Xl..p...| |
|000054a0| 70 72 69 6e 74 20 46 49 | 4c 45 3b 20 23 20 63 68 |print FI|LE; # ch|
|000054b0| 69 6c 64 27 73 20 53 54 | 44 49 4e 20 69 73 20 70 |ild's ST|DIN is p|
|000054c0| 61 72 65 6e 74 27 73 20 | 4b 49 44 0d 00 4c 00 00 |arent's |KID..L..|
|000054d0| 25 20 00 00 40 30 75 00 | 68 16 b9 ff 78 3d b9 ff |% ..@0u.|h...x=..|
|000054e0| 70 1a 00 00 20 20 20 20 | 7d 0d 00 00 00 20 00 00 |p... |}.... ..|
|000054f0| 25 38 00 00 40 20 bf 02 | 88 e7 b8 ff 98 0e b9 ff |%8..@ ..|........|
|00005500| 70 1a 00 00 20 20 20 20 | 65 78 69 74 3b 20 20 23 |p... |exit; #|
|00005510| 20 64 6f 6e 27 74 20 66 | 6f 72 67 65 74 20 74 68 | don't f|orget th|
|00005520| 69 73 0d 00 00 38 00 00 | a5 44 00 00 40 70 17 00 |is...8..|.D..@p..|
|00005530| a8 b8 b8 ff b8 df b8 ff | 70 1a 00 00 7d 0d 08 41 |........|p...}..A|
|00005540| 0c 2e 83 00 12 2c 83 00 | 00 00 00 00 08 20 2d 61 |.....,..|..... -a|
|00005550| 12 00 00 00 00 00 00 00 | 07 29 0d 20 18 2f 83 00 |........|.). ./..|
|00005560| 18 2f 83 00 00 00 00 00 | 00 44 00 00 a5 24 00 00 |./......|.D...$..|
|00005570| 40 00 00 00 18 a4 b8 ff | d8 b0 b8 ff 00 00 00 00 |@.......|........|
|00005580| 0d 08 3b 0d 18 30 83 00 | 00 00 00 00 00 24 00 00 |..;..0..|.....$..|
|00005590| 05 78 00 00 00 7c 28 07 | 48 4b b8 ff 28 7a b8 ff |.x...|(.|HK..(z..|
|000055a0| 20 22 00 00 41 6e 6f 74 | 68 65 72 20 63 6f 6d 6d | "..Anot|her comm|
|000055b0| 6f 6e 20 75 73 65 20 66 | 6f 72 20 74 68 69 73 20 |on use f|or this |
|000055c0| 63 6f 6e 73 74 72 75 63 | 74 20 69 73 20 77 68 65 |construc|t is whe|
|000055d0| 6e 20 79 6f 75 20 6e 65 | 65 64 20 74 6f 20 65 78 |n you ne|ed to ex|
|000055e0| 65 63 75 74 65 20 73 6f | 6d 65 74 68 69 6e 67 20 |ecute so|mething |
|000055f0| 77 69 74 68 6f 75 74 20 | 74 68 65 20 73 68 65 6c |without |the shel|
|00005600| 6c 27 73 20 00 78 00 00 | 05 88 00 00 00 04 a9 07 |l's .x..|........|
|00005610| 21 13 b8 ff 01 42 b8 ff | 20 22 00 00 69 6e 74 65 |!....B..| "..inte|
|00005620| 72 66 65 72 65 6e 63 65 | 2e 20 20 57 69 74 68 20 |rference|. With |
|00005630| 73 79 73 74 65 6d 28 29 | 2c 20 69 74 27 73 20 73 |system()|, it's s|
|00005640| 74 72 61 69 67 68 74 66 | 6f 72 77 61 72 64 2c 20 |traightf|orward, |
|00005650| 62 75 74 20 79 6f 75 20 | 63 61 6e 27 74 20 75 73 |but you |can't us|
|00005660| 65 20 61 20 70 69 70 65 | 20 6f 70 65 6e 20 6f 72 |e a pipe| open or|
|00005670| 20 62 61 63 6b 74 69 63 | 6b 73 20 73 61 66 65 6c | backtic|ks safel|
|00005680| 79 2e 20 54 68 61 74 27 | 73 20 00 00 00 88 00 00 |y. That'|s ......|
|00005690| 05 88 00 00 00 dc dc 07 | fa da b7 ff da 09 b8 ff |........|........|
|000056a0| 20 22 00 00 62 65 63 61 | 75 73 65 20 74 68 65 72 | "..beca|use ther|
|000056b0| 65 27 73 20 6e 6f 20 77 | 61 79 20 74 6f 20 73 74 |e's no w|ay to st|
|000056c0| 6f 70 20 74 68 65 20 73 | 68 65 6c 6c 20 66 72 6f |op the s|hell fro|
|000056d0| 6d 20 67 65 74 74 69 6e | 67 20 69 74 73 20 68 61 |m gettin|g its ha|
|000056e0| 6e 64 73 20 6f 6e 20 79 | 6f 75 72 20 61 72 67 75 |nds on y|our argu|
|000056f0| 6d 65 6e 74 73 2e 20 20 | 20 49 6e 73 74 65 61 64 |ments. | Instead|
|00005700| 2c 20 75 73 65 20 6c 6f | 77 65 72 2d 6c 65 76 65 |, use lo|wer-leve|
|00005710| 6c 20 00 00 00 88 00 00 | a5 48 00 00 40 cc 28 02 |l ......|.H..@.(.|
|00005720| d3 a2 b7 ff b3 d1 b7 ff | 20 22 00 00 63 6f 6e 74 |........| "..cont|
|00005730| 72 6f 6c 20 74 6f 20 63 | 61 6c 6c 20 65 78 65 63 |rol to c|all exec|
|00005740| 28 29 20 64 69 72 65 63 | 74 6c 79 2e 0d 07 00 00 |() direc|tly.....|
|00005750| 14 31 83 00 14 31 83 00 | 00 00 00 00 00 48 00 00 |.1...1..|.....H..|
|00005760| a5 74 00 00 40 d8 39 03 | fc 33 b7 ff dc 62 b7 ff |.t..@.9.|.3...b..|
|00005770| 20 22 00 00 48 65 72 65 | 27 73 20 61 20 73 61 66 | "..Here|'s a saf|
|00005780| 65 20 62 61 63 6b 74 69 | 63 6b 20 6f 72 20 70 69 |e backti|ck or pi|
|00005790| 70 65 20 6f 70 65 6e 20 | 66 6f 72 20 72 65 61 64 |pe open |for read|
|000057a0| 3a 0d 08 20 14 00 00 00 | 00 00 00 00 07 20 74 68 |:.. ....|..... th|
|000057b0| 12 32 83 00 12 32 83 00 | 00 00 00 00 07 ec 82 00 |.2...2..|........|
|000057c0| 0c 33 83 00 12 32 83 00 | 0c 33 83 00 00 00 00 00 |.3...2..|.3......|
|000057d0| 00 74 00 00 25 38 00 00 | 40 90 d6 02 f5 cc b6 ff |.t..%8..|@.......|
|000057e0| 05 f4 b6 ff 70 1a 00 00 | 23 20 61 64 64 20 65 72 |....p...|# add er|
|000057f0| 72 6f 72 20 70 72 6f 63 | 65 73 73 69 6e 67 20 61 |ror proc|essing a|
|00005800| 73 20 61 62 6f 76 65 0d | 00 38 00 00 a5 64 00 00 |s above.|.8...d..|
|00005810| 40 90 d6 02 15 9e b6 ff | 25 c5 b6 ff 70 1a 00 00 |@.......|%...p...|
|00005820| 24 70 69 64 20 3d 20 6f | 70 65 6e 28 4b 49 44 5f |$pid = o|pen(KID_|
|00005830| 54 4f 5f 52 45 41 44 2c | 20 22 2d 7c 22 29 3b 0d |TO_READ,| "-|");.|
|00005840| 08 05 05 05 0c 34 83 00 | 12 32 83 00 00 00 00 00 |.....4..|.2......|
|00005850| 08 32 08 05 12 00 00 00 | 00 00 00 00 07 66 69 6c |.2......|.....fil|
|00005860| 18 35 83 00 18 35 83 00 | 00 00 00 00 00 64 00 00 |.5...5..|.....d..|
|00005870| a5 48 00 00 40 00 00 00 | 85 89 b6 ff 45 96 b6 ff |.H..@...|....E...|
|00005880| 00 00 00 00 0d 08 6f 6d | 18 36 83 00 00 00 00 00 |......om|.6......|
|00005890| 07 20 66 69 12 37 83 00 | 12 37 83 00 00 00 00 00 |. fi.7..|.7......|
|000058a0| 07 f6 82 00 0c 38 83 00 | 12 37 83 00 0c 38 83 00 |.....8..|.7...8..|
|000058b0| 00 00 00 00 00 48 00 00 | 25 30 00 00 40 a0 03 02 |.....H..|%0..@...|
|000058c0| 85 38 b6 ff 95 5f b6 ff | 70 1a 00 00 69 66 20 28 |.8..._..|p...if (|
|000058d0| 24 70 69 64 29 20 7b 20 | 20 20 23 20 70 61 72 65 |$pid) { | # pare|
|000058e0| 6e 74 0d 00 00 30 00 00 | 25 34 00 00 40 d0 78 02 |nt...0..|%4..@.x.|
|000058f0| a5 09 b6 ff b5 30 b6 ff | 70 1a 00 00 20 20 20 20 |.....0..|p... |
|00005900| 77 68 69 6c 65 20 28 3c | 4b 49 44 5f 54 4f 5f 52 |while (<|KID_TO_R|
|00005910| 45 41 44 3e 29 20 7b 0d | 00 34 00 00 25 3c 00 00 |EAD>) {.|.4..%<..|
|00005920| 40 e0 1c 03 c5 da b5 ff | d5 01 b6 ff 70 1a 00 00 |@.......|....p...|
|00005930| 20 20 20 20 20 20 20 20 | 23 20 64 6f 20 73 6f 6d | |# do som|
|00005940| 65 74 68 69 6e 67 20 69 | 6e 74 65 72 65 73 74 69 |ething i|nteresti|
|00005950| 6e 67 0d 00 00 3c 00 00 | 25 20 00 00 40 30 75 00 |ng...<..|% ..@0u.|
|00005960| e5 ab b5 ff f5 d2 b5 ff | 70 1a 00 00 20 20 20 20 |........|p... |
|00005970| 7d 0d 00 00 00 20 00 00 | a5 74 00 00 40 90 4d 04 |}.... ..|.t..@.M.|
|00005980| 05 7d b5 ff 15 a4 b5 ff | 70 1a 00 00 20 20 20 20 |.}......|p... |
|00005990| 63 6c 6f 73 65 28 4b 49 | 44 5f 54 4f 5f 52 45 41 |close(KI|D_TO_REA|
|000059a0| 44 29 20 7c 7c 20 77 61 | 72 6e 20 22 6b 69 64 20 |D) || wa|rn "kid |
|000059b0| 65 78 69 74 65 64 20 24 | 3f 22 3b 0d 08 0d 08 05 |exited $|?";.....|
|000059c0| 0c 39 83 00 12 37 83 00 | 00 00 00 00 08 05 05 05 |.9...7..|........|
|000059d0| 12 00 00 00 00 00 00 00 | 07 05 05 05 18 3a 83 00 |........|.....:..|
|000059e0| 18 3a 83 00 00 00 00 00 | 00 74 00 00 a5 48 00 00 |.:......|.t...H..|
|000059f0| 40 00 00 00 75 68 b5 ff | 35 75 b5 ff 00 00 00 00 |@...uh..|5u......|
|00005a00| 0d 08 74 72 18 3b 83 00 | 00 00 00 00 07 20 73 75 |..tr.;..|..... su|
|00005a10| 12 3c 83 00 12 3c 83 00 | 00 00 00 00 07 75 63 68 |.<...<..|.....uch|
|00005a20| 0c 3d 83 00 12 3c 83 00 | 0c 3d 83 00 00 00 00 00 |.=...<..|.=......|
|00005a30| 00 48 00 00 25 30 00 00 | 40 30 ec 01 75 17 b5 ff |.H..%0..|@0..u...|
|00005a40| 85 3e b5 ff 70 1a 00 00 | 7d 20 65 6c 73 65 20 7b |.>..p...|} else {|
|00005a50| 20 20 20 20 20 20 23 20 | 63 68 69 6c 64 0d 00 00 | # |child...|
|00005a60| 00 30 00 00 25 48 00 00 | 40 20 36 04 95 e8 b4 ff |.0..%H..|@ 6.....|
|00005a70| a5 0f b5 ff 70 1a 00 00 | 20 20 20 20 28 24 45 55 |....p...| ($EU|
|00005a80| 49 44 2c 20 24 45 47 49 | 44 29 20 3d 20 28 24 55 |ID, $EGI|D) = ($U|
|00005a90| 49 44 2c 20 24 47 49 44 | 29 3b 20 23 20 73 75 69 |ID, $GID|); # sui|
|00005aa0| 64 20 6f 6e 6c 79 0d 00 | 00 48 00 00 25 3c 00 00 |d only..|.H..%<..|
|00005ab0| 40 50 34 03 b5 b9 b4 ff | c5 e0 b4 ff 70 1a 00 00 |@P4.....|....p...|
|00005ac0| 20 20 20 20 65 78 65 63 | 28 24 70 72 6f 67 72 61 | exec|($progra|
|00005ad0| 6d 2c 20 40 6f 70 74 69 | 6f 6e 73 2c 20 40 61 72 |m, @opti|ons, @ar|
|00005ae0| 67 73 29 0d 00 3c 00 00 | 25 44 00 00 40 80 a9 03 |gs)..<..|%D..@...|
|00005af0| d5 8a b4 ff e5 b1 b4 ff | 70 1a 00 00 20 20 20 20 |........|p... |
|00005b00| 20 20 20 20 7c 7c 20 64 | 69 65 20 22 63 61 6e 27 | || d|ie "can'|
|00005b10| 74 20 65 78 65 63 20 70 | 72 6f 67 72 61 6d 3a 20 |t exec p|rogram: |
|00005b20| 24 21 22 3b 0d 00 00 00 | 00 44 00 00 25 2c 00 00 |$!";....|.D..%,..|
|00005b30| 40 00 77 01 f5 5b b4 ff | 05 83 b4 ff 70 1a 00 00 |@.w..[..|....p...|
|00005b40| 20 20 20 20 23 20 4e 4f | 54 52 45 41 43 48 45 44 | # NO|TREACHED|
|00005b50| 0d 00 00 00 00 2c 00 00 | a5 44 00 00 40 70 17 00 |.....,..|.D..@p..|
|00005b60| 15 2d b4 ff 25 54 b4 ff | 70 1a 00 00 7d 0d 08 20 |.-..%T..|p...}.. |
|00005b70| 0c 3e 83 00 12 3c 83 00 | 00 00 00 00 08 ff 82 00 |.>...<..|........|
|00005b80| 12 00 00 00 00 00 00 00 | 07 00 00 00 18 3f 83 00 |........|.....?..|
|00005b90| 18 3f 83 00 00 00 00 00 | 00 44 00 00 a5 34 00 00 |.?......|.D...4..|
|00005ba0| 40 00 00 00 85 18 b4 ff | 45 25 b4 ff 00 00 00 00 |@.......|E%......|
|00005bb0| 0d 08 6e f1 18 40 83 00 | 00 00 00 00 07 78 61 6d |..n..@..|.....xam|
|00005bc0| 14 41 83 00 14 41 83 00 | 00 00 00 00 00 34 00 00 |.A...A..|.....4..|
|00005bd0| 01 10 00 00 41 54 e5 02 | 00 00 00 00 00 10 00 00 |....AT..|........|
|00005be0| 02 18 00 00 70 0a 00 00 | 00 00 00 00 14 41 83 00 |....p...|.....A..|
|00005bf0| 00 00 00 00 00 18 00 00 | a5 7c 00 00 40 54 e5 02 |........|.|..@T..|
|00005c00| 5a 46 b1 ff 3a 75 b1 ff | 20 22 00 00 16 00 00 00 |ZF..:u..| "......|
|00005c10| b0 fc 07 00 00 00 00 00 | 41 6e 64 20 68 65 72 65 |........|And here|
|00005c20| 27 73 20 61 20 73 61 66 | 65 20 70 69 70 65 20 6f |'s a saf|e pipe o|
|00005c30| 70 65 6e 20 66 6f 72 20 | 77 72 69 74 69 6e 67 3a |pen for |writing:|
|00005c40| 0d 08 00 00 14 00 00 00 | 00 00 00 00 07 00 00 00 |........|........|
|00005c50| 12 42 83 00 12 42 83 00 | 00 00 00 00 07 6f 72 20 |.B...B..|.....or |
|00005c60| 0c 43 83 00 12 42 83 00 | 0c 43 83 00 00 00 00 00 |.C...B..|.C......|
|00005c70| 00 7c 00 00 25 38 00 00 | 40 90 d6 02 53 df b0 ff |.|..%8..|@...S...|
|00005c80| 63 06 b1 ff 70 1a 00 00 | 23 20 61 64 64 20 65 72 |c...p...|# add er|
|00005c90| 72 6f 72 20 70 72 6f 63 | 65 73 73 69 6e 67 20 61 |ror proc|essing a|
|00005ca0| 73 20 61 62 6f 76 65 0d | 00 38 00 00 25 3c 00 00 |s above.|.8..%<..|
|00005cb0| 40 00 ee 02 73 b0 b0 ff | 83 d7 b0 ff 70 1a 00 00 |@...s...|....p...|
|00005cc0| 24 70 69 64 20 3d 20 6f | 70 65 6e 28 4b 49 44 5f |$pid = o|pen(KID_|
|00005cd0| 54 4f 5f 57 52 49 54 45 | 2c 20 22 7c 2d 22 29 3b |TO_WRITE|, "|-");|
|00005ce0| 0d 00 00 00 00 3c 00 00 | a5 7c 00 00 40 10 09 05 |.....<..|.|..@...|
|00005cf0| 93 81 b0 ff a3 a8 b0 ff | 70 1a 00 00 24 53 49 47 |........|p...$SIG|
|00005d00| 7b 41 4c 52 4d 7d 20 3d | 20 73 75 62 20 7b 20 64 |{ALRM} =| sub { d|
|00005d10| 69 65 20 22 77 68 6f 6f | 70 73 2c 20 24 70 72 6f |ie "whoo|ps, $pro|
|00005d20| 67 72 61 6d 20 70 69 70 | 65 20 62 72 6f 6b 65 22 |gram pip|e broke"|
|00005d30| 20 7d 3b 0d 08 00 00 00 | 0c 44 83 00 12 42 83 00 | };.....|.D...B..|
|00005d40| 00 00 00 00 08 73 74 20 | 12 00 00 00 00 00 00 00 |.....st |........|
|00005d50| 07 c8 82 00 18 45 83 00 | 18 45 83 00 00 00 00 00 |.....E..|.E......|
|00005d60| 00 7c 00 00 a5 48 00 00 | 40 00 00 00 03 6d b0 ff |.|...H..|@....m..|
|00005d70| c3 79 b0 ff 00 00 00 00 | 0d 08 66 69 18 46 83 00 |.y......|..fi.F..|
|00005d80| 00 00 00 00 07 72 73 20 | 12 47 83 00 12 47 83 00 |.....rs |.G...G..|
|00005d90| 00 00 00 00 07 61 6e 64 | 0c 48 83 00 12 47 83 00 |.....and|.H...G..|
|00005da0| 0c 48 83 00 00 00 00 00 | 00 48 00 00 25 30 00 00 |.H......|.H..%0..|
|00005db0| 40 30 ec 01 03 1c b0 ff | 13 43 b0 ff 70 1a 00 00 |@0......|.C..p...|
|00005dc0| 69 66 20 28 24 70 69 64 | 29 20 7b 20 20 23 20 70 |if ($pid|) { # p|
|00005dd0| 61 72 65 6e 74 0d 00 00 | 00 30 00 00 25 2c 00 00 |arent...|.0..%,..|
|00005de0| 40 70 8e 01 23 ed af ff | 33 14 b0 ff 70 1a 00 00 |@p..#...|3...p...|
|00005df0| 20 20 20 20 66 6f 72 20 | 28 40 64 61 74 61 29 20 | for |(@data) |
|00005e00| 7b 0d 00 00 00 2c 00 00 | 25 34 00 00 40 d0 78 02 |{....,..|%4..@.x.|
|00005e10| 43 be af ff 53 e5 af ff | 70 1a 00 00 20 20 20 20 |C...S...|p... |
|00005e20| 20 20 20 20 70 72 69 6e | 74 20 4b 49 44 5f 54 4f | prin|t KID_TO|
|00005e30| 5f 57 52 49 54 45 3b 0d | 00 34 00 00 25 20 00 00 |_WRITE;.|.4..% ..|
|00005e40| 40 30 75 00 63 8f af ff | 73 b6 af ff 70 1a 00 00 |@0u.c...|s...p...|
|00005e50| 20 20 20 20 7d 0d 00 00 | 00 20 00 00 a5 74 00 00 | }...|. ...t..|
|00005e60| 40 00 65 04 83 60 af ff | 93 87 af ff 70 1a 00 00 |@.e..`..|....p...|
|00005e70| 20 20 20 20 63 6c 6f 73 | 65 28 4b 49 44 5f 54 4f | clos|e(KID_TO|
|00005e80| 5f 57 52 49 54 45 29 20 | 7c 7c 20 77 61 72 6e 20 |_WRITE) ||| warn |
|00005e90| 22 6b 69 64 20 65 78 69 | 74 65 64 20 24 3f 22 3b |"kid exi|ted $?";|
|00005ea0| 0d 08 68 65 0c 49 83 00 | 12 47 83 00 00 00 00 00 |..he.I..|.G......|
|00005eb0| 08 20 61 6e 12 00 00 00 | 00 00 00 00 07 6c 64 20 |. an....|.....ld |
|00005ec0| 18 4a 83 00 18 4a 83 00 | 00 00 00 00 00 74 00 00 |.J...J..|.....t..|
|00005ed0| a5 48 00 00 40 00 00 00 | f3 4b af ff b3 58 af ff |.H..@...|.K...X..|
|00005ee0| 00 00 00 00 0d 08 82 00 | 18 4b 83 00 00 00 00 00 |........|.K......|
|00005ef0| 07 00 00 00 12 4c 83 00 | 12 4c 83 00 00 00 00 00 |.....L..|.L......|
|00005f00| 07 00 00 00 0c 4d 83 00 | 12 4c 83 00 0c 4d 83 00 |.....M..|.L...M..|
|00005f10| 00 00 00 00 00 48 00 00 | 25 30 00 00 40 c0 d4 01 |.....H..|%0..@...|
|00005f20| f3 fa ae ff 03 22 af ff | 70 1a 00 00 7d 20 65 6c |....."..|p...} el|
|00005f30| 73 65 20 7b 20 20 20 20 | 20 23 20 63 68 69 6c 64 |se { | # child|
|00005f40| 0d 00 00 00 00 30 00 00 | 25 3c 00 00 40 e0 1c 03 |.....0..|%<..@...|
|00005f50| 13 cc ae ff 23 f3 ae ff | 70 1a 00 00 20 20 20 20 |....#...|p... |
|00005f60| 28 24 45 55 49 44 2c 20 | 24 45 47 49 44 29 20 3d |($EUID, |$EGID) =|
|00005f70| 20 28 24 55 49 44 2c 20 | 24 47 49 44 29 3b 0d 00 | ($UID, |$GID);..|
|00005f80| 00 3c 00 00 25 3c 00 00 | 40 50 34 03 33 9d ae ff |.<..%<..|@P4.3...|
|00005f90| 43 c4 ae ff 70 1a 00 00 | 20 20 20 20 65 78 65 63 |C...p...| exec|
|00005fa0| 28 24 70 72 6f 67 72 61 | 6d 2c 20 40 6f 70 74 69 |($progra|m, @opti|
|00005fb0| 6f 6e 73 2c 20 40 61 72 | 67 73 29 0d 00 3c 00 00 |ons, @ar|gs)..<..|
|00005fc0| 25 44 00 00 40 80 a9 03 | 53 6e ae ff 63 95 ae ff |%D..@...|Sn..c...|
|00005fd0| 70 1a 00 00 20 20 20 20 | 20 20 20 20 7c 7c 20 64 |p... | || d|
|00005fe0| 69 65 20 22 63 61 6e 27 | 74 20 65 78 65 63 20 70 |ie "can'|t exec p|
|00005ff0| 72 6f 67 72 61 6d 3a 20 | 24 21 22 3b 0d 00 00 00 |rogram: |$!";....|
|00006000| 00 44 00 00 25 2c 00 00 | 40 00 77 01 73 3f ae ff |.D..%,..|@.w.s?..|
|00006010| 83 66 ae ff 70 1a 00 00 | 20 20 20 20 23 20 4e 4f |.f..p...| # NO|
|00006020| 54 52 45 41 43 48 45 44 | 0d 00 00 00 00 2c 00 00 |TREACHED|.....,..|
|00006030| a5 44 00 00 40 70 17 00 | 93 10 ae ff a3 37 ae ff |.D..@p..|.....7..|
|00006040| 70 1a 00 00 7d 0d 08 00 | 0c 4e 83 00 12 4c 83 00 |p...}...|.N...L..|
|00006050| 00 00 00 00 08 61 6e 20 | 12 00 00 00 00 00 00 00 |.....an |........|
|00006060| 07 6d 61 6e 18 4f 83 00 | 18 4f 83 00 00 00 00 00 |.man.O..|.O......|
|00006070| 00 44 00 00 a5 24 00 00 | 40 00 00 00 03 fc ad ff |.D...$..|@.......|
|00006080| c3 08 ae ff 00 00 00 00 | 0d 08 05 05 18 50 83 00 |........|.....P..|
|00006090| 00 00 00 00 00 24 00 00 | 05 84 00 00 00 b4 e9 07 |.....$..|........|
|000060a0| 33 a3 ad ff 13 d2 ad ff | 20 22 00 00 4e 6f 74 65 |3.......| "..Note|
|000060b0| 20 74 68 61 74 20 74 68 | 65 73 65 20 6f 70 65 72 | that th|ese oper|
|000060c0| 61 74 69 6f 6e 73 20 61 | 72 65 20 66 75 6c 6c 20 |ations a|re full |
|000060d0| 55 6e 69 78 20 66 6f 72 | 6b 73 2c 20 77 68 69 63 |Unix for|ks, whic|
|000060e0| 68 20 6d 65 61 6e 73 20 | 74 68 65 79 20 6d 61 79 |h means |they may|
|000060f0| 20 6e 6f 74 20 62 65 20 | 63 6f 72 72 65 63 74 6c | not be |correctl|
|00006100| 79 20 69 6d 70 6c 65 6d | 65 6e 74 65 64 20 6f 6e |y implem|ented on|
|00006110| 20 61 6c 69 65 6e 20 00 | 00 84 00 00 85 98 00 00 | alien .|........|
|00006120| 00 9c ec 07 0c 6b ad ff | ec 99 ad ff 20 22 00 00 |.....k..|.... "..|
|00006130| 73 79 73 74 65 6d 73 2e | 20 20 41 64 64 69 74 69 |systems.| Additi|
|00006140| 6f 6e 61 6c 6c 79 2c 20 | 74 68 65 73 65 20 61 72 |onally, |these ar|
|00006150| 65 20 6e 6f 74 20 74 72 | 75 65 20 6d 75 6c 74 69 |e not tr|ue multi|
|00006160| 74 68 72 65 61 64 69 6e | 67 2e 20 20 49 66 20 79 |threadin|g. If y|
|00006170| 6f 75 27 64 20 6c 69 6b | 65 20 74 6f 20 6c 65 61 |ou'd lik|e to lea|
|00006180| 72 6e 20 6d 6f 72 65 20 | 61 62 6f 75 74 20 74 68 |rn more |about th|
|00006190| 72 65 61 64 69 6e 67 2c | 20 73 65 65 20 74 68 65 |reading,| see the|
|000061a0| 20 07 6b 69 06 51 83 00 | 06 51 83 00 00 00 00 00 | .ki.Q..|.Q......|
|000061b0| 00 98 00 00 a5 64 00 00 | 40 00 53 04 e5 32 ad ff |.....d..|@.S..2..|
|000061c0| c5 61 ad ff ba 1f 00 00 | 6d 6f 64 75 6c 65 73 08 |.a......|modules.|
|000061d0| 06 52 83 00 00 00 00 00 | 20 66 69 6c 65 20 6d 65 |.R......| file me|
|000061e0| 6e 74 69 6f 6e 65 64 20 | 62 65 6c 6f 77 20 69 6e |ntioned |below in|
|000061f0| 20 74 68 65 20 53 45 45 | 20 41 4c 53 4f 20 73 65 | the SEE| ALSO se|
|00006200| 63 74 69 6f 6e 2e 0d 07 | 0a 53 83 00 0a 53 83 00 |ction...|.S...S..|
|00006210| 00 00 00 00 00 64 00 00 | a5 64 00 00 40 c6 c5 04 |.....d..|.d..@...|
|00006220| 3e bc ac ff ee f2 ac ff | 18 2b 00 00 42 69 64 69 |>.......|.+..Bidi|
|00006230| 72 65 63 74 69 6f 6e 61 | 6c 20 43 6f 6d 6d 75 6e |rectiona|l Commun|
|00006240| 69 63 61 74 69 6f 6e 20 | 77 69 74 68 20 41 6e 6f |ication |with Ano|
|00006250| 74 68 65 72 20 50 72 6f | 63 65 73 73 0d 08 73 73 |ther Pro|cess..ss|
|00006260| 0a 54 83 00 00 00 00 00 | 07 65 20 63 14 55 83 00 |.T......|.e c.U..|
|00006270| 14 55 83 00 00 00 00 00 | 00 64 00 00 05 74 00 00 |.U......|.d...t..|
|00006280| 00 7c d4 06 09 67 ac ff | e9 95 ac ff 20 22 00 00 |.|...g..|.... "..|
|00006290| 57 68 69 6c 65 20 74 68 | 69 73 20 77 6f 72 6b 73 |While th|is works|
|000062a0| 20 72 65 61 73 6f 6e 61 | 62 6c 79 20 77 65 6c 6c | reasona|bly well|
|000062b0| 20 66 6f 72 20 75 6e 69 | 64 69 72 65 63 74 69 6f | for uni|directio|
|000062c0| 6e 61 6c 20 63 6f 6d 6d | 75 6e 69 63 61 74 69 6f |nal comm|unicatio|
|000062d0| 6e 2c 20 77 68 61 74 20 | 61 62 6f 75 74 20 62 69 |n, what |about bi|
|000062e0| 64 69 72 65 63 74 69 6f | 6e 61 6c 20 00 74 00 00 |directio|nal .t..|
|000062f0| a5 90 00 00 40 b0 7a 05 | e2 2e ac ff c2 5d ac ff |....@.z.|.....]..|
|00006300| 20 22 00 00 63 6f 6d 6d | 75 6e 69 63 61 74 69 6f | "..comm|unicatio|
|00006310| 6e 3f 20 20 54 68 65 20 | 6f 62 76 69 6f 75 73 20 |n? The |obvious |
|00006320| 74 68 69 6e 67 20 79 6f | 75 27 64 20 6c 69 6b 65 |thing yo|u'd like|
|00006330| 20 74 6f 20 64 6f 20 64 | 6f 65 73 6e 27 74 20 61 | to do d|oesn't a|
|00006340| 63 74 75 61 6c 6c 79 20 | 77 6f 72 6b 3a 0d 08 54 |ctually |work:..T|
|00006350| 14 00 00 00 00 00 00 00 | 07 6f 6e 20 12 56 83 00 |........|.on .V..|
|00006360| 12 56 83 00 00 00 00 00 | 07 63 68 61 0c 57 83 00 |.V......|.cha.W..|
|00006370| 12 56 83 00 0c 57 83 00 | 00 00 00 00 00 90 00 00 |.V...W..|........|
|00006380| a5 78 00 00 40 a0 f1 04 | db c7 ab ff eb ee ab ff |.x..@...|........|
|00006390| 70 1a 00 00 6f 70 65 6e | 28 50 52 4f 47 5f 46 4f |p...open|(PROG_FO|
|000063a0| 52 5f 52 45 41 44 49 4e | 47 5f 41 4e 44 5f 57 52 |R_READIN|G_AND_WR|
|000063b0| 49 54 49 4e 47 2c 20 22 | 7c 20 73 6f 6d 65 20 70 |ITING, "|| some p|
|000063c0| 72 6f 67 72 61 6d 20 7c | 22 29 0d 08 0c 58 83 00 |rogram ||")...X..|
|000063d0| 12 56 83 00 00 00 00 00 | 08 6e 64 20 12 00 00 00 |.V......|.nd ....|
|000063e0| 00 00 00 00 07 20 74 68 | 18 59 83 00 18 59 83 00 |..... th|.Y...Y..|
|000063f0| 00 00 00 00 00 78 00 00 | a5 34 00 00 40 00 00 00 |.....x..|.4..@...|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.