Path: ccsf.homeunix.org!ccsf.homeunix.org!news1.wakwak.com!nf1.xephion.ne.jp!onion.ish.org!gcd.org!jindaiji.chofu.tokyo.jp!mmcatv.co.jp!news.moat.net!newsfeed.mesh.ad.jp!tky01nn01fe0.sonytelecom.ad.jp!giga-nspixp2!np0.iij.ad.jp!news.iij.ad.jp!news1.harenet.ne.jp!not-for-mail From: psbfan@po.harenet.ne.jp Newsgroups: fj.sys.sun Subject: Re: psuedo termnal =?iso-2022-jp?b?GyRCJEskRCQkJEYbKEI=?= Date: 10 Jan 2005 11:53:39 +0900 Organization: Hare no kuni Net Lines: 51 Message-ID: References: <3991078news.pl@rananim.ie.u-ryukyu.ac.jp> <3991080news.pl@rananim.ie.u-ryukyu.ac.jp> NNTP-Posting-Host: flets456.harenet.ne.jp Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 8bit X-Trace: sr-sv06.harenet.ne.jp 1105328088 82589 210.167.82.204 (10 Jan 2005 03:34:48 GMT) X-Complaints-To: miya-p@po.harenet.ad.jp,toshiaki@po.harenet.ad.jp NNTP-Posting-Date: 10 Jan 2005 03:34:48 GMT User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Bryce Canyon) Xref: ccsf.homeunix.org fj.sys.sun:182 kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes: > 河野真治 @ 琉球大学情報工学です。 > > In article , psbfan@po.harenet.ne.jp writes > > 出力に、0x00と\nが大量に吐き出され、そのあいだに、shellの出力のかがまりが > > なんども現れ、そのうち、overflowの合図らしきbeepがひたすら続きます。 > > うん。そんなものでしょう。0x00が大量に出るのは、pty のpadding > で出るのが正しい時もあります。 > if((bytes = read(sfd, buf, sizeof buf)) == -1){ error and exit } > if((len = write(1, buf, bytes)) == -1) { error and exit } > だから、read してないときでも write にいっちゃうので、そうなります。 > if((bytes = read(sfd, buf, sizeof buf)) != -1) { > write(1, buf, bytes); > } > ぐらい? (対処しないなら write のerrorみてもしょうがない...) 勉強になります。 > > > > tcgetattr ..etc.. tcsetattr > > > system("stty raw"); とかですませたりします。:-p > > なるほど。気づかなかった。 > > いや、setattr が正しいんですよ。stty raw だと設定できない部分も > あるので。 確かにそうですが、最初はraw modeにしようとsgttybやltcharsを c_?flagやc_ccに書き換えてたので、stty rawのほうが早かったです。 > > 簡単ではないとなると、どのくらいの難易度なのでしょうか。 > > 学部の学生さんなら、たいていは書けるっていうくらいなら > > level 1 read/write を使った cat > level 2 select を使った read のチェック この辺りまでかな、cでかこうとするのは。 > level 3 read/writeを同時に使う非同期的なI/Oの扱い > level 4 socket を使った IPC ここら当たりはperlで書いてしまいます。 (こんがらがるのは、perlの裏方に任せてるからかもしれない) > level 5 termios の扱い > level 6 pty の扱い (IPCとtermiosの組合せ) > ってな感じなんで、それぞれ1-2日程度かかるってな感じかな。 仕事の合間にでも、できそうですね。頑張ってみます。 有り難うございました。