68user's page 掲示板

Prev< No. 3281〜3320> Next  [最新発言に戻る] [過去ログ一覧]
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 でした・・・。

No. 3283 # keijirou 2003/07/10 (木) 14:49:26
>>3281 68user
回答ありがとうございます。
やはり、自前でエスケープシーケンスを判断しなければいけないようですね。
その方向で開発をすすめてみます。
いろいろとありがとうございました。

No. 3284 # 68user 2003/07/10 (木) 18:27:42
>>3282 ゆう
韓国語関連は全く知りませんが、引数ではなく標準入力から
渡さないといけなんじゃないですかね?
      http://www.tk.airnet.ne.jp/nagae/jp/comp/mule/any2ps.html

No. 3285 # umio 2003/07/14 (月) 02:26:42
私はネットワークについて初心者で、検索ページからこのサイトを拝見しました。噛み砕いた説明のおかげで理解しやすくとても参考になり、本当に感謝しています。ありがとうございます。

No. 3286 # ゆみ 2003/07/16 (水) 10:31:25
シェルの環境変数で宣言している物が,未定義変数だといわれ止ってしまいます。エラーが出ない場合のほうが多いのですが,さっきまで回っていたものが、未定義だと言われてとまってしまい,困っています。
なにか、アドバイスいただければ幸いです。

No. 3287 # bebe 2003/07/23 (水) 15:37:31
find コマンドで検索するときに、サブディレクトリを検索させない
ようにすることは、出来ますか?
(例)find / -name *.txt
とすると、/配下のディレクトリまで検索してしまいますが、そうでは
なくて、/だけを検索させたいのですが‥
ちなみに、Solarisを使用しています。

No. 3288 # keijirou 2003/07/23 (水) 16:51:01
いつもお世話になります
早速ですが、cursesの関数で、現在のカーソル位置を記憶する、および
記憶したカーソル位置の復帰を行う関数は存在するでしょうか?
自前で現在位置を覚えておいて、wmoveで移動する方法しかないのでしょうか?

No. 3289 # 通りすがり 2003/07/24 (木) 13:32:36
UNIXの部屋のリファレンスを求めて初めておじゃましました。
ちょっと気づいたのですが、文字コードの指定がない上にShift_JISや
EUCが混在していたりするため、しばしばブラウザが文字コード判定に失敗するようです。
<head>中に<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">等の表記を入れて頂ければうれしく思います。

No. 3290 # 68user 2003/07/24 (木) 16:57:30
>>3285 umio
ありがとうございます。わかりにくい記述などを見つけたらぜひ教えてください。

>>3286 ゆみ
> なにか、アドバイスいただければ幸いです。
情報不足です。ここらへん
      http://www.hyuki.com/writing/techask.html#procedure
を読むとよい質問ができるようになると思います。

>>3287 bebe
> find コマンドで検索するときに、サブディレクトリを検索させない
> ようにすることは、出来ますか?
> ちなみに、Solarisを使用しています。
GNU find などなら find / -maxdepth 1 ですが、Solaris の find では
できない、と思っています。無理矢理やるなら
    % find `ls -dF /* | egrep -v '/$'` -type f -name \*.txt
とかですが、「そんなの ls /*.txt でいいじゃん」と言われるでしょうね。

>>3288 keijirou
> 現在のカーソル位置を記憶する、および記憶したカーソル位置の復帰を
> 行う関数は存在するでしょうか?
curces の全関数を知っているわけではないですが、多分存在しないんじゃ
ないでしょうか。

>>3289 通りすがり
> 文字コードの指定がない上にShift_JISやEUCが混在していたりするため、
> しばしばブラウザが文字コード判定に失敗するようです。
対処します (8月中にはなんとか…)。

しかしすべてのページは EUC-JP で統一していると思っていたんですが、
Shift_JIS なページがありましたっけ?

No. 3291 # Netboy 2003/07/24 (木) 17:49:29
文字コードなんですけど、いろいろな種類のブラウザで
全く文字化けが起きないようにするには工夫がいるみたいです。
特にApache 1.3系では、

・ApacheのAddCharset設定で日本語コードを指定しておく
・各ページにMETAタグを入ておく

の両方を行わないとだめみたいです。
かなり古い話ですがApache 1.3.12の頃からそうなってます。私の経験では

<Directory />
Options FollowSymLinks
AllowOverride None
AddCharset ISO-2022-JP html
AddCharset ISO-2022-JP htm
AddCharset ISO-2022-JP shtml
AddCharset ISO-2022-JP shtm
</Directory>

でISO-2022-JPで決めうちしたあと
METAタグでShift_JISにしたりEUC-JPにするといい感じでした。

http://www.asahi-net.or.jp/~AE5T-KSN/apache/charset-problem.html

No. 3292 # Netboy 2003/07/24 (木) 18:00:22
と思って実際の設定を調べてみたのですが、普通に
AddCharset EUC-JP html
等で済ませてました。これとMETAタグ併用でした。

No. 3293 # kazu [E-mail] 2003/07/25 (金) 14:52:11
はじめましてperlをはじめて半年レベルです。
貴殿のページでネットの勉強はじめましたが、レンタルサーバーのためtelnetが使えません。参考のplを実行させたいのですがどうすればやれますでしょうか。
初歩的な質問で申し訳ありませんがご指導ください。

No. 3294 # 68user 2003/07/28 (月) 09:55:03
>>3291 Netboy
> ・ApacheのAddCharset設定で日本語コードを指定しておく
> ・各ページにMETAタグを入ておく
これ、いまだに迷っているのですが、HTTP ヘッダに charset を
含めるのと、meta で書くのとどっちがいいんですかね。

前者だと、ローカルにある HTML ファイルを直接ブラウザで見たりなんか
すると、charset がないのでエンコーディングを誤判定してしまいます。
# IE は保存時に meta 埋めてくれますが。

でも meta だと、ファイルのエンコーディングを変えたらいちいち
charset を変更しなければいけないのか、って話になりますし。

個人的には、エンコーディングくらいブラウザが自動的に (そして
もっと賢く) 判定しろよ、と思います。

> http://www.asahi-net.or.jp/~AE5T-KSN/apache/charset-problem.html
これについては、apache のソースをいじって charset=iso-8859-1 を
削る対応が好きです。と言っても、x68000.startshop.co.jp では
やってませんが。


>>3293 kazu
> レンタルサーバーのためtelnetが使えません。
ftp でサーバに CGI スクリプトを置いておくだけでいいです。

と言っても、telnet 可能かどうかは作業効率に大きく関わるため、
telnet 可なサーバに乗り換えることをお勧めします。

乗り換えたくないなら、ローカルにも perl や web サーバを入れ、
サーバ側とできるだけ同じ環境を構築して、ローカルでテストが
可能なようにしておくとよいでしょう。

No. 3295 # Netboy 2003/07/28 (月) 10:53:09
>これ、いまだに迷っているのですが、HTTP ヘッダに charset を
>含めるのと、meta で書くのとどっちがいいんですかね。

世間ではMETA優先なんじゃないでしょうか。
でもcharsetでiso-8859-1が来るとコード自動判別とMETAタグが
両方とも無効になるブラウザがあるので
charsetで何か日本語コードが来るようにしないとだめみたいです。

>でも meta だと、ファイルのエンコーディングを変えたらいちいち
>charset を変更しなければいけないのか、って話になりますし。

そういう場合は文字コード判別&タグ入れをスクリプトで自動化して
一括して行うしかないと思います。
全然参考にならなくて済みません。

No. 3296 # >>3293 2003/07/28 (月) 19:37:09
>ftp でサーバに CGI スクリプトを置いておくだけでいいです。
いろいろ試しましたがよく解りませんでした。
ありがとう御座いました。

No. 3297 # kazu 2003/07/28 (月) 19:41:54
>>3293 kazu
>ftp でサーバに CGI スクリプトを置いておくだけでいいです。
いろいろ試してみましたがうまく行きませんでした。
ありがとうございました。

No. 3298 # user326 2003/07/29 (火) 11:18:48
UNIXサーバを自動運転で動かしています。
管理する他のクライアントから、起動・シャットダウンの命令を自動で行うように設定してあります。
一昨日から、UNIXサーバを起動する(自動運転)と時刻がシャットダウンした後(直後の時刻)になってしまいます。
端末については、正常な時刻になっています。
特にntpを使用している訳でもありません。
何か考えられる原因はありますでしょうか?
また、怪しい部分などがありましたら教えてください。

No. 3299 # 68user 2003/07/31 (木) 12:52:25
>>3298 user326
> 何か考えられる原因はありますでしょうか?
まぁ一番に疑うべきはハード故障なんでしょうね。手動でシャット
ダウンしたらどうなるんでしょうか。

> 端末については、正常な時刻になっています。
これは意味がわかりませんでした。端末が時刻を保持している
はずはないし、端末からログインして date を叩くと見ると
正常な時刻ということなら、さらに謎な挙動ですね。

No. 3300 # 68user 2003/08/12 (火) 07:38:14
Netboy さんと startshop さんと両毛インターネットさんの
ご好意で使わせていただいておりました このサーバですが、
諸事情により使えなくなりそうです。

いつ使えなくなるかは現時点ではわかっていないのですが、
もしいきなり接続できなくなった場合は、
      http://210.249.139.22/
      http://home.jp.freebsd.org/~matsu/
のいずれかに移転のお知らせを出します。

が、わたしは現在ネットカフェ経由でないとこのマシンに
ログインできないという情けない状況なので、お知らせが
遅れるかもしれませんがご了承ください。

No. 3301 # 68user 2003/08/12 (火) 21:48:31
とりあえずサーバ自体はしばらく残していただけるそうですが、
ドメインはどうなるかわかりません。

もし急に x68000.startshop.co.jp の名前が引けなくなったら
http://210.249.139.22/~68user/ で見てください。

No. 3302 # ken 2003/08/13 (水) 23:59:46
初めまして。
ネットワークプログラミングの基本を勉強したいと思い、いつも拝見させていただいています。
今はFTPクライアントを勉強中のところなんですが、どうしてもわからないところがあり、教えていただきたいと思って書き込みます。

68userさんのプログラムを参考にした上で、Passiveモードを使ってFTPサーバのファイルリストを取得するのみのプログラムを組んでいます。
サーバ側にまずUSER、PASSコマンドを送信するところまでは成功しました。(レスポンスを見て確認しました)
しかし、その後にPASVコマンドを送っても、サーバから何の応答もありません。
これは何が悪いのでしょうか?
ちなみに相手サーバは、インフォシークのレンタルweb用のFTPサーバです。

No. 3303 # 68user 2003/08/14 (木) 00:27:11
>>3302 ken
なんでですかね。仮に PASV 未対応の FTP サーバであっても、
      500 Commando not understood
程度は返してくると思います (今どき PASV 未対応はありえないと
思いますが)。

一般的に、あらゆる ftp クライアントにデバッグモードが実装されて
いると思うので、まずは今お使いの ftp クライアントで試して、
デバッグ表示を見るのがよいでしょう。

それでも解決しなかったら、telnet で USER・PASS・PASV を叩いた
結果を (ユーザ名・パスワード部分は隠した上で) 見せてください。
あと、もし問題なければ
> インフォシークのレンタルweb用のFTPサーバ
のホスト名を教えてください。

No. 3304 # SL 2003/08/14 (木) 10:22:10
はじめまして、ソケット通信を勉強したくてこちらのHPにたどりつきました。すみませんがひとつ質問させてください。

ソケット通信でindex.htmlというファイルの中身は取得できたのですが、同じようにしてindex.cgiというファイルを指定すると

The requested URL /index.cgi was not found on this server.<P>

という返信が返ってきてしまいます。実行ファイルの場合は何か指定の仕方が違うのでしょうか。
どうぞ宜しくお願い致します。

No. 3305 # 68user 2003/08/14 (木) 11:13:15
>>3304 SL
> 実行ファイルの場合は何か指定の仕方が違うのでしょうか。
同じリクエストの仕方で問題ありません。

        http://www.asahi.com/index.html
は取得できるのに
        http://www.asahi.com/index.cgi
は取得できないのはなぜか?

asahi.com が index.cgi を置いてないからです。

No. 3306 # SL 2003/08/14 (木) 12:07:17
>>3304 68user

ご回答ありがとうございました。

> asahi.com が index.cgi を置いてないからです。

確かにそのとおりでした。すみません。
自分で置いてテストしたのですが、確認したら指定を間違えていました。

他サイトにあるスクリプトをソケット通信で実行したいと思って、やっているのですが、ブラウザからは実行できるのにソケット通信だとできないので、もしかしたら実行ファイルは他の設定があるのかと考えてしまいました。

ブラウザからは実行できるのにソケット通信では実行できないということはあるのでしょうか。

宜しくお願い致します。

No. 3307 # 68user 2003/08/14 (木) 15:44:08
>>3306 SL
> 他サイトにあるスクリプトをソケット通信で実行したいと思って、
> やっているのですが、ブラウザからは実行できるのにソケット通信
> だとできないので
これは index.cgi とは別の問題ですか?

どんなリクエストを送っているかを明らかにしていただくのが早い
んですが、まぁ想像するに Host ヘッダを送ってない、てなところでは
ないかと思いました。

いずれにせよクライアントを作る前に telnet で試してみてください。

No. 3308 # SL 2003/08/14 (木) 18:57:02
>>3307 68user

ご回答ありがとうございます。

> これは index.cgi とは別の問題ですか?

他のサイトにあるスクリプトが実行できないので、自分のところにスクリプトを置いて実験しているだけですので、困っていることはひとつです。

> んですが、まぁ想像するに Host ヘッダを送ってない、てなところ

Hostヘッダというのは送ってないような気がします。68userさんが公開してくださっているソースをそのまま使っただけですので。
ご指摘のhostヘッダの件が問題点のような気がします。

http://www.shop-link.net/tie-up/test/socket4.txt

ソースは上記です。すみませんが見ていただけますか。

宜しくお願い致します。

No. 3309 # 68user 2003/08/14 (木) 19:36:51
>>3308 SL
> ご指摘のhostヘッダの件が問題点のような気がします。
ブラウザで
    http://219.109.215.211/cgi/gp_new.CGI
を見ると not found になるということは、そういうことでしょうね。

http://x68000.startshop.co.jp/~68user/net/http-4.html を見て、
Host ヘッダを追加してみてください。

No. 3310 # SL [E-mail] 2003/08/14 (木) 23:27:04
>>3309 68user

ありがとうございました。
なんとか動くようになりました。

Hostヘッダを追加して、proxyを使用しないようにしました。

本当にありがとうございました。
また何かありましたら宜しくお願い致します(^^;

お礼と言ってはなんですが、メルマガ出してますので、何か宣伝したいことがあったらメールして下さい。<m(_w_)m>

No. 3311 # ken 2003/08/15 (金) 10:58:54
ご返答ありがとうございました。
えっと…結論から言うと、解決しました(^^;

ftpコマンドでもtelnetコマンドでも問題が無かったので、
やはり自分のプログラムに問題があるのだろうと思い、もう一度見直しました。
どうやら、全箇所でレスポンスを受け取ってないのが原因かと思いました。
ぼくは、要所要所でだけ、受け取ったレスポンスを表示させればいいのかと思ってたんですけど、どうやらそれがいけなかったようですね。
それによっていろいろと狂ってきたようです。
レスポンスをすべて表示させたりしたら直りました。
ではでは、ありがとうございましたm(_ _)m

No. 3312 # さんぺい 2003/08/19 (火) 15:57:03
初めて投稿させていただきます。
UNIXはまだ初心者です。
教えていただきたいことなんですが、今Cシェルを作成しています。
その中で処理終了後にメールを送ろうとしているのですがFrom句(差出人)
を任意で変更したいと考えているのですが可能なのでしょうか。
いろいろ調べてみましたがFrom句を変えるようなものはありませんでした。
ご存知のかたがいらっしゃったら教えていただけないでしょうか。
Subjectだけ指定したソースを記載しておきます。
お願いします。
サーバ(username)[1]:/usr/ucb/mail -s "test" test@test.co.jp < test.txt

No. 3313 # 68user 2003/08/19 (火) 18:15:36
>>3312 さんぺい
> /usr/ucb/mail -s "test" test@test.co.jp < test.txt
test.txt に
      From: hoge
      Subject: test
      To: test@test.co.jp

      本文
などとヘッダ類を全部書いて、
      % /usr/ucb/mail -t < test.txt
でいけると思います。

ただ、エラーが発生したときに戻ってくるメールアドレス
(envelope-from) はこれでは書き換わりませんのでご注意を。
もしそれも変更したいなら sendmail を直接呼ぶしかないと
思います。

No. 3314 # mikan [E-mail] 2003/08/21 (木) 10:02:49
初めて投稿させていただきます。
UNIXは学生の時に整った環境で触っていた程度です。

今、職場の方でUNIXにユーザ追加をし、メールユーザを増やそうとしています。
方法としては、
「vipwコマンド」を使用してユーザを追加しました。
ユーザ自体は追加できたのですが、いざメールを使用してみると、パスワード認証エラーがでてはじかれます。
パスワードがおかしいのかと思い、「passwdコマンド」でパスワードを変更してみたのですが結果は同じでした。

他になにか、設定がいるのでしょうか?
ちなみに、「fingerコマンド」を使用して追加したユーザ情報を表示したところ、ユーザは存在すると認識されているようです。
お手数ですが、素人な私にどうかご教示下さい。

No. 3315 # tomtom 2003/08/22 (金) 14:30:33
はじめまして、tomtom といいます。
ソケット通信に興味があり、勉強に励んではや3ヶ月の初心者です。

最近、自分で簡単なクライアントサーバのソケット通信プログラムを
作成してみたのですが、recv関数で受信エラーが発生してしまいます。
メッセージの送信元で、send関数により送信された内容と、
実際にrecv関数で受信した内容を確認してみたところ、きちんと
同じものが受信できているようでした。

そこで、エラー番号から何がおきているのか解析しようとしたのですが、
やり方が間違っているのかエラー番号を何も出力してくれません。

もし、何かお気づきのことがあるようでしたら、
ご指導いただけないでしょうか?

問題の箇所:

if(recv($sock_id, $msg, $MAX_BUFF, 0) eq undef){
                    print "$msg";
    print "errno = $!";
}

No. 3316 # tomotomo 2003/08/22 (金) 16:08:39
度々すみません。
先ほど投稿させていただいたtomtomです。
処理系を書き忘れたので,再度書き込みをさせていただきました。
動かしている処理系は、linuxです。
余談ですが、linux-perlとactive-perlとで、recvやsendなどの
システムコールの処理結果は、異なるのでしょうか?
(NG時undefを返さず、別のものを返す、、など)

クライアントをlinux-perlで、サーバをactive-perl(WinXP)で
起動しおり、サーバの方は、同様のrecv記述で上手く受信できているの
で、なにか関係あるのかな、と素人ながら少し気になりました。

以上、度々失礼しました。

No. 3317 # 68user 2003/08/22 (金) 16:21:46
>>3315 tomtom
> if(recv($sock_id, $msg, $MAX_BUFF, 0) eq undef){
undef かどうかのチェックは、正しくは
    if ( ! defined recv($sock_id, $msg, $MAX_BUFF, 0) ){
です。recv は相手側のアドレス (IP アドレス+ポート番号) を
返すので、それが undef と一致する、と解釈されているのかも
しれません。

# でも、この書き方では undef を返さない限り eq undef と
# ならないような気がするなぁ。

>>3314 mikan
> いざメールを使用してみると、パスワード認証エラーがでて
> はじかれます。
メールを使用というのは、POP を使ってメールを取得してみた
ということですか? もしそうなら、telnet で POP サーバに
アクセスし、本当に認証エラーになっているのか調べてください。
      http://x68000.startshop.co.jp/~68user/net/pop3-1.html

あと、ユーザ追加だけで OK か、というのは職場のメールサーバの
設定次第なので何とも言えません。

No. 3318 # tomtom 2003/08/23 (土) 09:37:45
tomtomです。
68userさん、アドバイスをありがとうございます。
自分が素人であることを実感いたしました。
undefを判別するのには、define関数をもちいるのですね。
アドバイスに感謝いたします。
早速、試してみますね。

ではでは

No. 3319 # スナフキン 2003/08/29 (金) 05:22:17
perlでテキスト処理をしていますが、有るリストをキーとしたハッシュ
を生成したんですが、そのキーとなるファイルのサイズが110Mb程、キー数
(レコード数)は約1000万弱のレコードが有ります。

そのハッシュのキーを使い別のCSVのフィールドの中に同じキーが存在
する場合に必要な処理を行なっています。
if(exists $KEY{$csv_key_field}){ 処理 }

で、実際に動かすと500Mbのメモリを使い切り(何故?)、1Gbのスワップ
さえも使いきり止まってしまいます。

根本的にこのアルゴリズム自体が悪いのか、それとも何かメモリ使用量を
抑える解決方法があるのか教えてください。

ちなみに、キーとなるデータを配列に格納して grep で検索するとさらに
べらぼうに時間が掛かります。

具体的には2つのリストの合成処理なんですが、このくらいの規模になると
DBに置き換えて処理した方が良いのでしょうか?
(最終的には何らかのDBに格納されるそうです)

もちろん、変数は可能な限り局所化しています。(つもりです(^^;)

もっと言えば、上記は最大サイズのリストではありますが、キーリストは
複数あり、それらを順繰りに処理しています。

どうぞお助けくださいm(_ _)m

No. 3320 # 68user 2003/08/29 (金) 22:28:24
>>3319 スナフキン
> そのキーとなるファイルのサイズが110Mb程、キー数(レコード数)は
> 約1000万弱のレコードが有ります。
全体のデータ容量がわからないですが、仮に 300MB 程度だとしても、
1.5GB 喰い尽くしてもおかしくないかなぁとは思います。

perl の内部構造は知りませんが、スカラー 1つ、配列の一要素、
ハッシュ 1キーなど、それぞれに必ず何バイトかずつ管理用データを
perl が保持しているからです。

実感としては、100MB 程度でもデータの持ち方次第ではまともに
動かないこともあるんじゃないかと思います。

> このくらいの規模になるとDBに置き換えて処理した方が良いので
> しょうか?
perl でもがんばれば何とかなるかもしれませんが (実データはファイルに
保存し、ハッシュにアクセスされるたびに tie でそのファイルを見にいくとか)、
    1. データが固定長 (もしくは最大長が決まっている)
    2. CSV の項目名や項目長が変わる可能性は少ない
    3. 処理内容が変わる可能性が少しでもある
          (この条件に引っかかるレコードは除外する、とか)
であれば、DB に突っ込んだ方がよろしいのではないでしょうか。
わたしならそうします。

項目名や項目長も変わるかもしれないなら、DBD::CSV モジュールとか
(使ったことないですけど)。

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