File: README.jp

package info (click to toggle)
ruby 1.4.3-6
  • links: PTS
  • area: main
  • in suites: potato
  • size: 4,068 kB
  • ctags: 7,509
  • sloc: ansic: 60,668; ruby: 23,106; yacc: 4,122; sh: 1,753; lisp: 997; makefile: 597; sed: 68; awk: 36; tcl: 31; perl: 17; python: 6
file content (89 lines) | stat: -rw-r--r-- 2,789 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
pty ĥ⥸塼 version 0.3 by A.ito

1. Ϥ

γĥ⥸塼ϡtty (pty) ̤Ŭʥޥɤ
¹Ԥ뵡ǽ ruby 󶡤ޤ

2. 󥹥ȡ

Τ褦ˤƥ󥹥ȡ뤷Ƥ

(1)  ruby extconf.rb

    ¹Ԥ Makefile ޤ

(2) make; make install ¹ԤƤ

3. Ǥ뤫

γĥ⥸塼ϡPTY Ȥ⥸塼ޤ
ˤϡΤ褦ʥ⥸塼ؿޤޤƤޤ

   getpty(command)
   spawn(command)

      δؿϡttyݤꤵ줿ޥɤ򤽤βtty
      θǼ¹Ԥ֤ޤͤ3ĤǤʤ
      ǤǽǤϲttyɤ߽ФIO֥ȡ
      2ܤϽ񤭤िIO֥ȡ3ܤϻҥץΥץ
      IDǤδؿƥ졼ȤƸƤФ줿硤
      Ǥϥ֥åѥ᡼ȤϤ졤ؿΤnil֤ޤ

      δؿˤäƺ줿֥ץưƤ֡ҥץ
      ξ֤ƻ뤹뤿 SIGCHLD ʥªޤҥץ
      λߤˤϡ㳰ȯޤδ֡٤Ƥ
      SIGCHLD  PTY ⥸塼ΥʥϥɥªΤǡ
      ֥ץ¾δؿ(system() Ȥ IO.popen()ʤ)
      Ȥȡͽʤ㳰ȯ뤳Ȥޤɤ
      ˤϡprotect_signal()򻲾ȤƤ

      δؿ֥åѥ᡼դǸƤФ줿ˤϡΥ֥å
      ǤΤ SIGCHLD ªޤäơ֥åѥ᡼
      ȤϤ줿IO֥Ȥ򡤥֥åγ˻ФƻȤ
      ϴޤ


   protect_signal

      δؿϥƥ졼Ǥǻꤵ줿֥åǤϡ
      ҥץλƤ㳰ȯޤ󡥤δؿȤȤǡ
      PTYλҥץưƤ֤Ǥ⡤system() IO.popen()ʤɤ
      ؿ˻ȤȤǤޤ㤨С

        PTY.spawn("command_foo") do |r,w|
          ...
          ...
          PTY.protect_signal do
            system "some other commands"
          end
          ...
        end

      Τ褦ʵҤˤꡤ"some other commands" λȤ
      㳰ȯΤɤޤ

    reset_signal

      PTY λҥץưƤƤ⡤Υץνλ㳰ȯ
      ʤ褦ˤޤ

4. ѤˤĤ

ƣ§ͭޤ

ץޤϥɥȤ˸ɽѤ줺
ɽƤ˸¤ꡤïǤ⡤Υեȥ̵
Ԥ̵ǤѡۡѤǤޤŪϸꤵƤޤ


Υץѡۤ¾Υץ˴ط԰٤ˤ
äʤ»ФƤ⡤ԤϰǤ餤ޤ

5. Х

ХݡȤϴޤޤ

	aito@ei5sun.yz.yamagata-u.ac.jp

ޤŻҥ᡼ǥХݡȤ꤯