aboutsummaryrefslogtreecommitdiffstats
path: root/ext/pty/README.jp
blob: 5ae4fb06a055755146faa87ae34213a800363b71 (plain)
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

�ޤ��Żҥ᡼��ǥХ���ݡ��Ȥ����꤯��������