68user's page 掲示板

Prev< No. 3277〜3282> Next  [最新発言に戻る] [過去ログ一覧]
No. 3277 # kotaro 2003/07/06 (日) 21:44:53
ありがとうございます。

socket関数にrawIPを使う機能がありました。
この機能を使えば、raw(生)のIPデータグラムを扱えるので
IPヘッダ以外にもTCPやUDPヘッダも自由に付けることができそうです。

No. 3278 # keijirou 2003/07/07 (月) 10:20:46
No3272 で質問させて頂いた者です。同環境でもう1つ質問させてください。
printfで画面出力した文字を、カーソルを文字の先頭に移動させて、再度取得する方法は?
カーソルの移動はエスケープシーケンスで行っています。
cursesを利用すれば表示した文字を再度取得することは可能なのですが、エスケープシーケンスを標準出力する方法が判らないのでしかたなくprintfを使っているという状況です。
cursesでエスケープシーケンスを標準出力できればよいのですが。。。

printfの文字取得、もしくはcursesでのエスケープシーケンスの標準出力、
について情報お持ちの方、回答よろしくお願いします。

No. 3279 # 68user 2003/07/07 (月) 16:12:08
>>3278 keijirou
> printfで画面出力した文字を、カーソルを文字の先頭に移動させて、
> 再度取得する方法は?
原理的に無理でしょう。自分で出力した文字を覚えておくくらいしか
ない (≒curses の再実装) と思います。

> カーソルを文字の先頭に移動させて
これを curses で行えばよいだけのように見えますが、curses では
ダメな理由があったりしますか?

No. 3280 # keijirou 2003/07/07 (月) 18:28:22
>>3279 68user
早速の回答ありがとうございます。
printfの文字を再度取得することは無理なんですね。
実際にprintfで出力した文字の先頭に、cursesで移動して、文字取得を行ったところ、何も取得できませんでした。
おそらく、cursesが持っているバッファからデータを持って来るようなので、printfの文字は取得されないものと思われます。

扱うデータがエスケープシーケンス入りのデータなので、printfがそのまま使えれば、解析せずに済むかと思い、質問させて頂きました。
また、画面に表示した文字のハードコピーを印刷するのにprintfの文字を再取得しようと考えてました。

もし、なにかよい方法がありましたら、またよろしくお願い致します。

No. 3281 # 68user 2003/07/09 (水) 21:49:39
>>3280 keijirou
> printfの文字を再度取得することは無理なんですね。
そうですね。stdio ライブラリは出力した文字を覚えていませんし、
kterm などの端末エミュレータも受け取った文字を覚えていません
ので。

# もし端末エミュレータが覚えていたとしても、アプリが
# 端末エミュレータに文字を問い合わせるような仕組みがない。

> 扱うデータがエスケープシーケンス入りのデータなので
もし curses がそのようなデータを扱えるとしたら、
      1. curses が出力するデータの中身を解析し、エスケープシーケンス取得。
      2. 環境変数 TERM を見て、エスケープシーケンスがその端末でどのような
            挙動をするのかを調べる。
      3. エスケープシーケンスを出力する代わりに、curses のライブラリを叩く。
という機能を持ってないといけないでしょうが、多分そのような
機能はないと思います。

データがエスケープシーケンス入りと言っても、ごく限られた
数種類程度のエスケープシーケンスではないですか?

もしそうであれば、自前でデータを解析し、エスケープシーケンスを
出力する代わりに curses のライブラリ関数を呼ぶ、ってのが簡単
そうな気がします。

No. 3282 # ゆう 2003/07/10 (木) 12:04:13
muleで韓国語を入力したまではよかったのですが・・・
印刷しようとすると化けてしまいます。
コマンドを教えてください。

p.s 「any2ps hangul.tex | lpr -Pstd1pr1」を試してみましたが、
            結果は、m2ps: Invalid argument: hangul.tex でした・・・。

Prev< No. 3277〜3282> Next  [最新発言に戻る] [過去ログ一覧]