はじめまして。 Windowsでネットワークプログラミングを行っていますが、bzero関数がWindowsでは無いみたいです。 代わりになるようなものが、見当たらないのですが、この関数はどういう働きをするのですか? |
bzeroの他に、bcopyも判りません。 こちらも教えてください。 |
>>1687 Q駒田 > Motifの質問なのですが うーん、すいませんがわかりませんです。 >>1688 eio > 一般ファイルのNULL文字を1バイト英数字(スペースを含む)に置 > き換えることができるのでしょうか? tr '\0' X でよござんすか? >>1689 ふにふに > x68030にNetBSDを入れようと思っているのですが あぁ…、68user's page なのに全然 X68000 じゃないページに ようこそ。ですが、残念ながら全くわかりません。 >>1690 おじさん > 削除したい http://X68000.startshop.co.jp/~68user/unix/pickup?rm http://X68000.startshop.co.jp/~68user/unix/pickup?rmdir > ディレクトリー名は随時作られるために固定できない 固定できないとはいえ、何らかの法則性があるでしょうから、 それをキーに rm -rf ディレクトリ名 などなど。ということを行うスクリプトを sh や csh や perl で組んで、 > 定期的に http://X68000.startshop.co.jp/~68user/unix/pickup?crontab で cron に登録しておけばよいです。簡単にやるなら、 0 12 * * * /bin/rm -rf /target/dir/* と書いておけば、毎日 12:00 に /target/dir/ の下にある ファイル・ディレクトリが消されます。 >>1691 紅の猫 > bzero関数がWindowsでは無いみたいです。 bzero はゼロクリアで、bcopy はコピーです。 http://www.freebsd.org/cgi/man.cgi?query=bzero&manpath=FreeBSD+4.2-RELEASE&format=html bzero, bcopy は元々 BSD 系の関数です (が SystemV 系 UNIX にも あります)。ANSI C 処理系では memset, memcpy を使います。 |
>>1693 68user ありがとうございます。 どうにか、http-client-1が動くようになりました。 |
こんばんわ。先日はどうもでした。 掲示板の改ページのとこがいまいちよく分からないのですが、 とほほラウンジの http://www.wakusei.ne.jp/twn/wwwlng.cgi?print+199901/99010207.txt 68userさんの、スマートでよさげなので参考にしたいのですが、 「次」だけでなく「前」と、「以上 31 から 58 番目の発言です。」 みたいなの付けたいのですが、まったく分からないです。。 よかったらご教授くださいませ、、。 |
>>1695 けんす B-Cus 1999/01/27(水) 03:02:50 の形だと、 発言が 40 件あるときに start=30 とすると「次の10件」が 表示されない (41件目かどうかで判定しているから) という問題点があるので、ちょっと構成を変えて、 $start=1; $count=1; $next_page_exist = 0; # 次ページが存在するか $messages_per_page = 10; # 1ページ 10件ずつ表示 if ( $ENV{QUREY_STRING} =~ m/start=(\d+)/ ){ $start = $1; } open(IN,"data.txt"); while (<IN>){ if ( $count >= $start ){ ($name,$content) = split(/,/,$_); print "名前:$name 内容:$content<br>\n"; if ( $count == $start+$messages_per_page ){ $next_page_exist = 1; last; } } $count++; } if ( $start != 1 ){ # 1件目から表示しているときは「前のxx件」を出さない printf qq(<a href="hoge.cgi?start=%d">前の$messages_per_page件</a>), $start-$messages_per_page ? ; } if ( $next_page_exist == 1 ){ # 次ページが存在しない場合は「次のxx件」を出さない printf qq(<a href="hoge.cgi?start=%d">次の$messages_per_page件</a>), $start+$messages_per_page; } printf "以上 %d から %d 番目の発言です。\n", $start, $count-1; という感じになります。動かしていないのでバグがあるやも しれません。 あと、start=7 のときに「前の10件」が hoge.cgi?start=-3 と なりますが、これは宿題ということで。 |
私は、ネットワーク管理をやっている者ですが・・どうしても原因の分からない問題にぶつかったので、分かる方いたら教えてください。 とある、プロバイダーのMailサーバーを管理しているのですが、全国いろんな環境からサーバーにMailを取りにきます。OCN-エコ-128kで接続してくるお客さんだけが、POPを取りにくるときタイムアウトしてしまいます・・同一症状が5カ所で出ております。トラフィック上は何の問題もなく、症状が現れたのは、4日前サーバーセンターに異常が出て、同一センター内にサーバーを設置している別会社がネットワーク構成を変えてからです。 弊社Mail+DNSサーバー(同一マシーン)に使っているOSはFREE-BSD3.3 qpopper3.1.2を利用中・・。 問題の出ているCliantからTracertしても異常は無く、DNSも問題なく引けてます、WWWは問題なく好調です・・。 関係有るかは分かりませんが、OCNのその5カ所は211.***.***.***のネットワークになっています。 それ以外のネットワークのOCNでは問題は起こっておりません。 OCN側は、異常は無いと言い張っているので、原因がさっぱり分かりません・・。 どなたか、分かる方なにが考えられるか教えてください。 |
>>1697 BOSS > CliantからTracertしても異常は無く > DNSも問題なく引けてます、WWWは問題なく qpopper が IP アドレスから FQDN を逆引きしようとして、 逆引きできないか、タイムアウトしている、というのは 考えられませんか? qpopper は何かログを吐いてませんか? |
>>1696 68user ばっちりでしたー。 すばらしいっす。感謝です68userさん。 http://www.kensu.com/bin/plywood.php ごめんなさい。Perlじゃないです。 いつもここの掲示板、参考にしてますm(_ _)m > あと、start=7 のときに「前の10件」が hoge.cgi?start=-3 と > なりますが、これは宿題ということで。 あまり自信ないですけど、、 if ( $start != 1 ){ # 1件目から表示しているときは「前のxx件」を出さない の部分を if ( $start - $messages_per_page >= 1 ){ にしてみたら、いちおうできたみたいです、、 もしよかったら、正解を教えてくださいませ。 あとちょっと気づいたことなんですが、 「次へ」で見てみると、前のページの一番最後にあった発言が また最上部へでてくるのですが、これは仕様ですか?? ちゃんと次のページへきたという安心感があってべつに問題ないのですが、 いちおうきいてみました。 ではー |
>>1699 けんす ああそうか…、ログの先頭が新しい書き込みで、最後が古い 書き込みなのね。僕は、この方式に start=xx 式の管理を 組み合わせるのはまずい仕様だと思います。 例えば、現在 http://www.kensu.com/bin/plywood.php?start=30 とすると、No.64〜34 が表示されます。 しかし、今後書き込みがあると、同じ URL でも No.65〜35、 No.66〜36 とだんだんずれていきます。これでは特定の話題を 指して URL を示すことができません。 一方、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=601-700 のように、古い順から数えて 601〜700 であれば、今後 いくら発言があろうと発言内容は変わりません。 # この点を仕様として考えておられるのでしたら失礼。 > if ( $start - $messages_per_page >= 1 ){ > にしてみたら、いちおうできたみたいです これだと http://www.kensu.com/bin/plywood.php?start=10 のときに、「前」リンクが表示されません。まぁ、これを バグと取るか仕様と取るかは人によるかもしれません。 > 前のページの一番最後にあった発言がまた最上部へ > でてくるのですが、これは仕様ですか?? いえ、バグです (笑) あと、ソースを公開されておられるのは大変素晴らしいですね。 僕は php を使ったことはありませんが、概要くらいは知ることが できました。 # そして、php であっても、一つのスクリプトにまとめようとすると # 結局 perl 的な書き方になってしまうのだなぁと思いました。 |
質問です。CGIプログラムから別のCGIプログラムは実行できますか? リンクチェッカーをCGIで作ったのですが、ブラウザ上から実行できる ようにしようと思ってボタンを作ったのですが、全くだめでした。 誰か知っている人がいたらおしえてください。お願いします。 |
>>1701 TK > 質問です。CGIプログラムから別のCGIプログラムは実行できますか? 情報が何も書いてないので、できます、としか言いようがないです。 |
以前に 4-stable は不安定と言いましたが、 最近は安定していますね。少なくともうちでは安定しています。 新しいデバイスドライバ試す程度なら、大丈夫でしょう。 ただし、2/1 から 2/4 までの間のソースは ipfw にバグが あるのでその期間のソースからはビルドしない方が良いです。 |
>>1703 rosegarden > 以前に 4-stable は不安定と言いましたが、最近は安定していますね。 もう SNAPSHOT ってなくなったんでしたっけ。freebsd-stable も 流し読みなので (読まずに捨てているとも言う)、最近は恐くて cvsup できません。 |
はじめまして。 Sakiikaと申します。 長文失礼します。 このたび、UNIX_Cを触ることになってHPを参考に させていただいているのですが、ライブラリルーチンの opendirを使ったプログラムを書いたのですが、 while ((dir = readdir(dp)) != NULL ){ でコンパイラエラーが出てしまい、うまく動作しませんでした。 原因を調査したところ、 struct direct *dir; を struct dirent *dir; に変更したら動作するようになりました。 これは、UNIX環境によって、 struct directとstruct direntの2つが定義されているのでしょうか。 初歩的な質問ですが宜しくお願いします。 |
>>1704 68user >もう SNAPSHOT ってなくなったんでしたっけ。 いや、まだあります。ただここ数日ビルドに失敗していますね。 したのは jpSNAP からのログです。 >===> etc/sendmail >rm -f freebsd.cf >(cd /usr/src/etc/sendmail && \ > m4 -D_CF_DIR_=/usr/src/etc/sendmail/../../contrib/sendmail/cf/ \ > /usr/src/etc/sendmail/../../contrib/sendmail/cf/m4/cf.m4 \ > freebsd.mc ) > freebsd.cf >chmod 444 freebsd.cf >+ touch /.buildworld_done >+ tar cyf /4.2-STABLE-20010205-JPSNAP.tar.bz2 -C /usr/obj . >tar: can't exec bzip2 : No such file or directory >release releng4 ends at 2001/02/05 04:32:32 これ見ると、make buildworld は成功しているようです。ただ、 /usr/obj のパック(これは通常 make world する際には関係ありません。 jpSNAP サービス独自の処理でしょう)に失敗しているだけです。 これはメールしておきました。 >freebsd-stable も流し読みなので 最近はとくに留意する点はありません。昨年暮れと同様の方法で make world 出来ると思います。一方 -current はちょっと、devfs がデフォルトで 採用されるようになったので、devfs 関係の記事を追ってないと 辛いかも知れません。ま、辛いとは言っても、ないデバイスは rc.devfs の 中でシンボリックリンク張れば良いだけですが。 |
雪ん子と申します。 初めて質問させていただきます。 CGI初心者ですが、参考書とWEBを参考にデーターベース(検索)なるのを 作成しています。 データはCSV形式で作成しており、ある条件に合致したものを表示する ようにしています。 表示されたものにはリンクを貼りそれぞれのページを表示するように しました。 しかし、情報が更新になる度に、リンク先のページのhtmlとデータの CSVファイルの両方を更新しないといけないという二重でまになって しまいます。 そこで、直接データベースからデータを引っ張り出して、リンク先の ページを作成することは可能でしょうか。 因みに、こちらにテスト環境があります。 http://www.oitamirai.co.jp/cgi/search.html |
プロセス間で共有できるメモリの使い方を教えてください。 (システムコールshmget、shmat、shmdt以外で。) |
>>1705 Sakiik direct は dirent の typo です。こういうときは、man readdir しましょう。正しい引数の数、型、戻り値、必要な include file などの情報が書いてあります。 >>1706 rosegarden ああ、なるほど。http://www.jp.freebsd.org/snapshots/ ですね。 僕の言った snapshot は、 「stable の中で、比較的安定していた時点のものにタグを打ったもの」 という意味だったのですが、昔はそういうのがありません でしたか? (記憶違いかな…) >>1707 雪ん子 > 表示されたものにはリンクを貼りそれぞれのページを > 表示するようにしました。 テスト環境ではリンク先に飛ぶことはできないのですね。リンク先の HTML がどれだけの情報を含んでいるのか判断できないので、どういう ふうにするのが最適なのかはわかりません。 とりあえず検索時に必要なデータと、リンク先にあるデータを全て 1つの CSV に突っ込んで、検索も表示も両方とも CGI でやってみては どうですか。 # というような回答でよいのかな? >>1708 はじめ > プロセス間で共有できるメモリの使い方を教えてください。 > (システムコールshmget、shmat、shmdt以外で。) shmget、shmat、shmdt 以外に共有メモリと呼ばれるものは 存在しないと思うんですが、もしかしてあったりするんでしょうか。 |
>>1709 68user > 僕の言った snapshot は、 > 「stable の中で、比較的安定していた時点のものにタグを打ったもの」 > という意味だったのですが、 ああ、そういう意味でしたか。失礼しました。 そうなるとちょっと分かりませんです。すみません。 |
>>1708 はじめ mmap(2)は共有メモリと呼べるかもしれません(現象的には共有ファイルになりますが)。 共有するには実ファイルが必要なことと、排他制御があるわけではないので、ひとつだけが書き込み、残りプロセスは読み込み専用、という場面でしか使えないかもしれませんが。 > direct は dirent の typo です。 Unixの生き字引みたいに、ここで名前は挙げられませんが、struct directがあるUnixはあったんじゃないですか? |
>>1711 gixs >Unixの生き字引みたいに、ここで名前は挙げられませんが、 > struct directがあるUnixはあったんじゃないですか? 言われて見れば、そんな感じしますね。 ちなみに FreeBSD の sys/dir.h みたらこんなのありました。 /* * Backwards compatibility. */ #define direct dirent #define DIRSIZ(dp) _GENERIC_DIRSIZ(dp) |
FreeBSD3.2を使用していますが,ノートのPCカードのSCSIでCD−ROMを認識させたいです.カードはIODATAのPCSC−Fを使用しています. |
>>1713 nori > FreeBSD3.2を使用していますが, FreeBSD 3.2-RELEASE は以前に使っていたのですが、その IODATA のカードって新しいのでしょうか? 新しいとしたら、絶望的です。 3.2-RELEASE で PC card 類を使うには、PAO patch あてないと 無理だと思いました。もっとも、カードの抜き差しをあきらめることにして 起動時の userconfig や visualconfig 使えば、とりあえず 認識させることは出来ます。irq とか io アドレス類を指定すれば 無理矢理に使うことは場合によっては出来ます。 ただし、CD-ROM ドライブ使うごとに shutdown/boot の繰り返しになりますが。 それに、3.2-RELEASE 用の patch が今でも手に入るかどうか謎です。 都合もあるでしょうが、システム自体アップグレードするのが一番です。 3.2-RELEASE だと、fix されていないセキュリティホールも多いし、 (リリースされた後に発見された security hole のことです。) 3.2-RELEASE がでた当時の PAO patch じゃ USB デバイスの対応も そんなに進んでいません。 (それとも RELEASE independent にパッチを当てられるのかな?) もっとも、pccard のデータベースを自分で編集して使えるように することは出来るでしょうし、以前にそれで乗り切った経験もあります。 しかし、トータルで見ていまさら、3.2-RELEASE なんて使うこと自体 お勧めできません。だいたい、ports なんかもほとんど使える状態じゃないし、 ports tree を更新したとしても、upgrade kit をインストールしないと 使えません。 よほどのマニアか腕前のある人でない限り 3.2-RELEASE はお勧めできません。 # でた当時は、何もかも、画期的で、安定していて、素晴らしかったんですが、 # 時間の推移というのは恐ろしいものです。 |
>>1711 gixs > struct directがあるUnixはあったんじゃないですか? それは知りませんでした。確かに 386BSD 0.0 では direct ですが、 http://www.freebsd.org/cgi/man.cgi?query=opendir&manpath=386BSD+0.0&format=html 4.4BSD Lite2 では dirent になってますね。 http://www.freebsd.org/cgi/man.cgi?query=opendir&manpath=4.4BSD+Lite2&format=html 参考: BSD の系譜 http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree?rev=1.38 |
>Readdir ありがとうございました。 私の使用しているものでは、 struct dirent *readdir_r(DIR *dirp, struct dirent *entry); でした。 日本語のヘルプとして参考にしたものも同じく、direntでした。 調べ方が足りなかったようです。 ありがとうございました。 参考にしたページ。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/readdir.2.html |
>>1709 68user 早速の回答、ありがとうございました。 >テスト環境ではリンク先に飛ぶことはできないのですね。 私のミスでした。リンクを貼るためのソースが欠落していました。 http://www.oitamirai.co.jp/cgi/search.html >とりあえず検索時に必要なデータと、リンク先にあるデータを全て >1つの CSV に突っ込んで、検索も表示も両方とも CGIで 検索結果後のリンク先の表示体系は基本的に全て同じとし、店舗名や 住所の所のみを変更するようにしたいと考えています。 そこで、検索結果に表示されるものからのリンク先へのリンクの させ方と言うか表示をさせる時のCGI(引数?)がよく分かりません。 データベースから検索結果を表示させるまでは何とか自力で出来ま したがその後の処理がうまく出来ません。 お力添えをよろしくお願いします。 |
>>1717 雪ん子 おすすめは、search.cgi が 《検索結果》 3 件検索しました <a href="pickup.cgi?shopid=1>●1号店</a><br> <a href="pickup.cgi?shopid=3>●3号店</a><br> <a href="pickup.cgi?shopid=11>●11号店</a><br> というような出力をして、pickup.cgi 側は QUERY_STRING を 解析し、shopid を取得する。それに従って CSV から該当する 行を抽出し、それを出力する、というものです。 |
始めまして ちょっと質問して良いでしょうか? perlでtime()等が有りますが、これだとコンマ何秒の数値が取得できないですよね? 相対的な速度を計算したいんですが何かいいモジュールが有りましたら教えてください 検索エンジン等色々探して見たんですが見つかりませんでした |
>>1719 hiroshi 試してませんが Time::HiRes というのがそれっぽいです。 http://www.cpan.org/modules/by-module/Time/ http://www.engelschall.com/ar/perldoc/pages/module/Time::HiRes.html (*1) > 検索エンジン等色々探して見たんですが見つかりませんでした http://www.google.com/ で「perl time usec」で調べると 一番目に *1 のサイトが引っかかりました。 |
あ、即レスすみません ちょっとキーが思い当たらなかったですね perl time 時間関数 なんてやってたんですけど さっそく組み込んで見ます それでは今後ともよろしくお願いします |
($seconds, $microseconds) = gettimeofday; この部分がそうみたいですね 今ちょっと試してます |
私は細かい字が見えないのでUNIXを使うときに困っています. ウィンドウズは簡単にフォントの大きさを変えられますがUNIXでフォントの大きさを変える方法がわかりません.xterm,ktermにフォントのオプションがあるようですが,どのフォントが適しているかわかりません. 単に大きくなればよいです.全体的に大きくなる簡単な方法はないでしょうか? NETSCAPE(3.x)は設定するところがありますが,私の場合アルファベットが小さくてなぜか真っ黒になっていて見えませんどうしてでしょうか? |
あと,Xウィンドウをインストールして立ち上げても~/に.XdefaultsなどのXの設定ファイルがありません.どこにあるのでしょうか? NETSCAPEのアルファベットが小さいのは解消されました.しかし,リンク部分などが真っ黒に塗られているのは解消できません. |
xterm,ktermのフォントの大きさを変えることができました. またわからないことがでてきたのですが,cshからtcshにログイン時に変えたいのですがなんかコマンドがあった気がします.忘れてしまいました. |
>>1718 68user 68userが言われるようにしたところ、受け側のCGIの QUERY_STRING で 渡った項目を取得することが出来ました。 あとは、受け取った項目をもとに検索表示する機能を作成したいと思います。 ありがとうございました。 |
>>1725 のり > xterm,ktermのフォントの大きさを変えることができました. 自己解決したとしても、掲示板に書き込んだ以上は 何をどうしたらうまくいったかを簡単に書きましょう。 > cshからtcshにログイン時に変えたいのですがなんかコマンドが > あった気がします.忘れてしまいました. passwd -e や chsh など。OS によって違います。 |
>> xterm,ktermのフォントの大きさを変えることができました. > 自己解決したとしても、掲示板に書き込んだ以上は > 何をどうしたらうまくいったかを簡単に書きましょう。 のり氏ではないですが。 単にコントロールキー+右クリックに気づいただけでしょう。 # 論点が掲示版での礼儀作法なら、部外者なのでノーコメント。 |
始めまして。 earthlinkのFTPツールで問題が発生したため、やむなくホームページ用データのアップロードをDOSプロンプトで行うことにしましたが、mput の確認を はずす方法がわからなくて困っていました。 Yahoo!で検索したところこちらのマニュアルを見る事ができたので 大変助かりました。どうもありがとうございました。 クロ |
はじめまして。 ソケット通信についての質問ですが、 クライアントとサーバの間の回線が何らかの障害によって切れた 場合、それを知る方法を教えてください。 会社ではポート情報を取得すればいいと言われたのですが よろしくお願いします |
68userさん,他の皆さん,こんばんは。 さて,ローカルでメーリングリストの過去ログを閲覧するための便利なツールはないでしょうか。 今はメーラ(Becky)に取り込むことを考えていて,展開・取込スクリプトも完成したのですが,まだ本番の作業に移っていません。 この方式での閲覧には難点が幾つかあって, (1) 1,000メール程度ごとに分割しなければ表示が遅くなるので,スレッドがつながらないことがままある。 (2) Plain Textで保管されるのでディスク容量が圧迫される。 (3) メモリが少ないことも影響してか,はたまたWindows上でのtar操作だからか,ログアーカイブの展開・取込に異常に時間がかかる。(これが本番の作業に至っていない理由。) 理想を言えば,あらかじめインデックスを作成しておき,閲覧分だけ逐次展開するツールがあれば便利なのですが,あるのでしょうか。Windows使いなので,Windows(含DOSプロンプト)か,cygwinか,perl・ruby等で動作することが条件です。ローカルhttpサーバを立てることも可能です。 情報調査力の足りない私にどんなことでもご教示いただけるなら幸いです。 |
お世話になります。 uptimeをcronで動かしてマシン負荷を記録するスクリプトを作りました。 ところが生成されたログの起動時刻が同じ時間になってしまうという 状態がみつかりました。 ログ生成スクリプトの該当部分(bashスクリプト) export LOAD=`uptime` 〜処理〜 echo $LOAD >> $LOG ← ログファイル 生成されたログの一部 12:59am up 11:36, 1 user, load average: 0.00, 0.00, 0.00 1:00am up 11:37, 1 user, load average: 0.00, 0.00, 0.00 1:00am up 11:38, 1 user, load average: 0.00, 0.00, 0.00 1:02am up 11:39, 1 user, load average: 0.00, 0.00, 0.00 これは1秒未満の実行タイミングの誤差から来ているのでしょうか? もしそれが原因ならば、起動時に数秒waitを掛けてからuptimeを実行 することでこの現象を回避できるでしょうか? cronは毎分実行にしていますが、毎回起こるのではなく1日の内1〜2 度程度、多分負荷の掛かっている時刻の0分に記録されているようです。 ぜひご意見をお聞かせください。 |
>>1731 CZ > さて,ローカルでメーリングリストの過去ログを > 閲覧するための便利なツールはないでしょうか。 有名どころでは mhonarc がありますね。こんなの。 http://his.luky.org/ML/linux-users.5/msg05835.html ただ、個人的にはあのインタフェースは大嫌いなので、mhonarc を 使うのなら自作します。前準備としては - 各メールの Subject、From、Date、Message-Id、In-Reply-To を拾い、DB 化 - Date 順 (あるいは X-Sequence 順) に In-Reply-To がないメールはツリーの起点メール In-Reply-To があるメールは他のメールの子 として、ツリー構造を作成 (1ツリー=1ファイルにする。遅いかな?) - Date 順 (あるいは X-Sequence 順) で、月ごと (100通単位) のツリーの起点 一覧をリストアップ とし、閲覧時に CGI で - 指定された月 (指定された 100通) のツリーの起点一覧を表示しつつ、 対応するツリー表示 てなところでしょうか。 # って、自分で作る方法を聞いておられるのではないような気もしますが。 出来合いのものを使うなら Java House のが好きですが、 http://java-house.etl.go.jp/ml/archive/j-h-b/037476.html これって配布されてるものなんでしょうか。 > tar操作だからか,ログアーカイブの展開・取込に異常に時間がかかる。 tar は、先頭のインデックスを見て、目的のファイルが何バイト目から 始まるかを知ることができません (違ったっけ) ので、ランダムアクセス には向きません。圧縮しないなら、100通単位でディレクトリを掘って 1メール=1ファイルにしておく方が案外速かったりするかもしれません。 >>1732 すな > uptimeをcronで動かしてマシン負荷を記録するスクリプトを作りました。 > ところが生成されたログの起動時刻が同じ時間になってしまうという > 状態がみつかりました。 とりあえず date で秒単位まで記録して、何秒に実行されているか 調べてみてはどうですか。cron は、0秒きっかりに実行してくれる 保証がなく、結構ばらつきがあるのかもしれません。 で、もし重くて遅れがでてしまうなら、それはそれで仕方がない のかもしれません。 >>1730 purine > クライアントとサーバの間の回線が何らかの障害によって切れた > 場合、それを知る方法を教えてください。 物理的な切断については http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1299-1302 てのがありますけど、一般的には http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-2.html#ss2.8 ですね。 |
> とりあえず date で秒単位まで記録して 確かにそのとおりですね。 で、早速そのようにして観察した所1時間もしないうちに、やはり前 後1秒程度の誤差が確認されました。 +1秒の時はいいのですが、-1秒の時は「xx:59:59」などとなってしま いますので、負荷が高い時を考えて5秒程度 sleep をかます事で対 処してみます。 ありがとうございました。 cronは結構誤差があるものなのですね。 今後cronを使うときの参考になりました。 関係ない話題ですが 午前0時と正午の表記は 00:00pm という表 記が正しいと思っていましたが、uptimeの出力では、12:00am と 12:00pm と表示されるのですね。 |
>>1733 68userさん お返事ありがとうございます。 > 出来合いのものを使うなら Java House のが好きですが、 > http://java-house.etl.go.jp/ml/archive/j-h-b/037476.html > これって配布されてるものなんでしょうか。 私もなかなか閲覧しやすいと思います。「Underconstruction」なのが残念ですが。 > tar は、先頭のインデックスを見て、目的のファイルが何バイト目から > 始まるかを知ることができません (違ったっけ) ので、ランダムアクセス > には向きません。圧縮しないなら、100通単位でディレクトリを掘って > 1メール=1ファイルにしておく方が案外速かったりするかもしれません。 そうですか。SEGA BBS 過去ログ<http://x68000.startshop.co.jp/~68user/index-segabbs.html>が「データは圧縮して保管しており、リクエストがあるたびに CGI で随時展開して」いることを覚えていたので,圧縮して随時展開という手法に期待をおいていたりしました。 今は他のことにかかりきりなので,できあいのものを探していたのですが,設計の考え方は参考になりました。そのうち時間があればログをメーラに取り込んで,そのうちさらに時間があれば自作も検討します。メーラのプラグインとして作成する手もありますが,いずれにせよ今は無理です。 ところで,今さっき「tar」で全文検索したときに発見したのですが,結果画面でNo.531だけが正常に表示されませんでした。ご報告まで。 |
テープにbackupしたデータを、復元させたいのですが コマンドの打ち方がわかりません。 教えて下さい。 UNIX若葉マークです。 |
68userさんお返事ありがとうございます。参考になりました。 |
ソケット通信でマルチクライアントサーバを作っているのですが お手本にできるソースってどこかにありませんか? プログラミング初心者ですが、要求がかなり厳しいので困ってます。 |
>>1735 CZ > 「Underconstruction」なのが残念ですが。 ってどこに書いてありました? > 結果画面でNo.531だけが正常に表示されませんでした。 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=531 のことでしたら、あれで正しい表示です。CZ さんが見られたときは 変な表示になってましたか? >>1736 SASA > テープにbackupしたデータを、復元させたいのですが > コマンドの打ち方がわかりません。 バックアップしたときにどういうコマンドを使ったのですか? mt? tar? dd? >>1738 purine > ソケット通信でマルチクライアントサーバを作っているのですが > お手本にできるソースってどこかにありませんか? まずは http://X68000.startshop.co.jp/~68user/net/ を見て、どこが足りないのか書きましょう。 # …についてもっと詳しく書いてあるソースがほしい、perl # じゃなくて C 言語のソースがほしい、などなど。でも # OS のソース以外のお手本は知らないなぁ。 >>1734 すな > で、早速そのようにして観察した所1時間もしないうちに、 > やはり前後1秒程度の誤差が確認されました。 ほうほう、cron が1秒早く起動されましたか。結構いいかげん なんですかね。お使いの OS は何でしょうか? |
お世話になっておりますpurineです。 C言語で書かれたソケット通信によるマルチクライアントサーバの お手本のソースを見たいのでご存知でしたら教えていただけませんか お手本だけじゃなくC言語のソケット通信に使う関数について書かれたページなどもありましたらよろしくお願いします |
purineさん> 職場の同僚がマルチクライアントサーバを作る時に調べていてみつけた便利そうなサイトへのリンク集だそうです。 http://www.geocities.co.jp/SiliconValley-Oakland/6682/link/LinksForWork_Edu01.html この同僚は検索サイトで探し出したそうですから あなたももっと探してみてはいかがでしょう。 |
追加です。 こちらのサイトへのリンクもあるそうです。 http://www.geocities.co.jp/SiliconValley-Oakland/6682/link_work.html |
こんばんわ、初めまして。 以前から、UNIXのページなど凄く参考にさせてもらってます。ども。。 いきなり、質問なのですが。 あやまって/usr/share/locale/ja_JP.EUCを削除してしまいました。 これを元にもどしたいのですが、どんな方法があるでしょうか。 すみませんが、よろしくお願いします。 FreeBSD 4.2-RELEASEです。 |
>>1743 なお FreeBSD 4.2-BETA では % ls -ld /usr/share/locale/ja_JP.EUC drwxr-xr-x 2 root wheel 512 Jan 8 14:18 /usr/share/locale/ja_JP.EUC/ % ls -l /usr/share/locale/ja_JP.EUC lrwxr-xr-x 1 root wheel 25 Jan 8 14:18 LC_COLLATE@ -> ../la_LN.ASCII/LC_COLLATE -rw-r--r-- 1 root wheel 5391 Jan 15 22:09 LC_CTYPE -rw-r--r-- 1 root wheel 304 Jan 8 14:18 LC_TIME です。まぁおそらく 4.2-RELEASE と内容は同じでしょう。 というわけで、src を展開しているなら、 # mkdir /usr/share/locale/ja_JP.EUC # ln -s ../la_LN.ASCII/LC_COLLATE /usr/share/locale/ja_JP.EUC/LC_COLLATE # mklocale /usr/src/share/mklocale/ja_JP.EUC.src > /usr/share/locale/ja_JP.EUC/LC_CTYPE # grep -v '^#' /usr/src/share/timedef/ja_JP.EUC.src > /usr/share/locale/ja_JP.EUC/LC_TIME です。src がなければ http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/ から拾ってきてください。 うちでは # cd /usr/src/share/mklocale # make すると、/obj/usr/src/share/mklocale/ja_JP.EUC.out が出力されますが、 この方法で locale/ja_JP.EUC だけインストールするのはどうやれば いいんだろう? もちろん CD-ROM があれば、mount して、 # cd / # cat /cdrom/bin/bin.?? | tar zxvfp - usr/share/locale/ja_JP.EUC/\* でも OK です。 cvsweb を見ていて気がついたのですが、current では、LC_MONETARY、 LC_NUMERIC を設定する http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/monetdef/ http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/numericdef/ てなのができたようですね。 |
過去ログみたら、マルチポストについての指摘が(^^; すみません、マルチポストです。 www.linux.co.jp FreeBSDで質問出来るような場所が見つからず linux板に書き込んでしまいましたが、 68userさんのサイトを思い出し、投稿させて頂きました。 linux.co.jpのほうはレスしてもうらうと悪いので 解決したと書いておきましたが、実はまだです。(^^; 反省と謝罪までに、、、、でわでわ、すみません。 下記のほうよろしくお願いします。 |
>1744 68userさん ありがとうございます。 srcからうまくいきました。 locale一つでも、色々方法があるみたいですね、、 まだ知識が追いついてないですが、書いてくださった他の方法も試してみます。 でわ、解答ありがとうございました。 |
>>1744 68user > うちでは > # cd /usr/src/share/mklocale > # make > すると、/obj/usr/src/share/mklocale/ja_JP.EUC.out が出力されますが、 > この方法で locale/ja_JP.EUC だけインストールするのはどうやれば > いいんだろう? -current の make world の際のログがありましたけど、 単純にコピーでいいようですね。 > ===> share/mklocale > install -c -m 644 -o root -g wheel el_GR.ISO_8859-7.out /usr/share/locale/el_GR.ISO_8859-7/LC_CTYPE > install -c -m 644 -o root -g wheel ja_JP.EUC.out /usr/share/locale/ja_JP.EUC/LC_CTYPE > install -c -m 644 -o root -g wheel ja_JP.SJIS.out /usr/share/locale/ja_JP.SJIS/LC_CTYPE [snip] /usr/obj の下のファイルが使えるなら、多少の無駄があるけど、 make installworld するのも手です。 > cvsweb を見ていて気がついたのですが、current では、LC_MONETARY、 > LC_NUMERIC を設定する > http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/monetdef/ > http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/share/numericdef/ > てなのができたようですね。 これが結構間があいて commit されていたので、make world が 途中でこけるのが二三日続いたことがありました。それで覚えてます。 |
>>1739 68userさん > > 「Underconstruction」なのが残念ですが。 > ってどこに書いてありました? スレッド一覧の最下部の「Mail converted by HyperThreads v0.9.1」のリンク先です。作者のウェブサイト<http://www.etl.go.jp/~takagi/>からも参照できます。 > > 結果画面でNo.531だけが正常に表示されませんでした。 > http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=531 > のことでしたら、あれで正しい表示です。CZ さんが見られたときは > 変な表示になってましたか? Namazuの検索結果画面での表示のことです。「オペランド」等で検索してみるとお分かりになるはずです。 さて,いろいろと探していたら,<http://blade.nagaokaut.ac.jp/>で使われているbladeシステムがかなり気に入りました。bladeクローンの<http://www.rr.iij4u.or.jp/~hideto-i/rb/yaiba/>が開発されています。rubyは分かるのでいいのですが,これをWindowsで動かそうとしたらかなり労力が要りそうで,ちょっと躊躇しています。 # そのうちに常時接続になることだし,そろそろ家庭内サーバを立てるか。 ## でも騒音と夏の空調とセキュリティの確保が大変そう。 ### ひょっとして常時接続になればローカルで閲覧する意味もなくなるか? 独り言を書き連ねてしまいました。 ではでは,これからもよろしくお願いします。 |
>>1725のりさん 解決したようですが、ちょっとXのリソースについて 私も今勉強中なのですが、、editresコマンドなどあるみたいです。 http://www.linux.or.jp/JF/JFdocs/XWindow-User-HOWTO-8.html http://www.ainet.or.jp/~inoue/athena/index.html |
>>1748 CZ > 「Mail converted by HyperThreads v0.9.1」のリンク先です。 なるほど、あれは高木さんの自作でしたか。公開してほしいなぁ。 > bladeクローンの<http://www.rr.iij4u.or.jp/~hideto-i/rb/yaiba/>が開発されています。 あ、これまた嫌いなインタフェース (^^; # これは、単に慣れてないだけという可能性もありますので、 # 本当の評価は保留中です。 > 「オペランド」等で検索してみるとお分かりになるはずです。 うーん、わからんです。どの辺でしょう。 http://X68000.startshop.co.jp/~68user/tmp/wwwboard-531.gif ちなみにメールアドレスが先頭に出るのは、僕の namazu 用 フィルタの書き方が悪いせいです。 あと、この BBS で <http://blade.nagaokaut.ac.jp/> という書き方をすると <http://blade.nagaokaut.ac.jp/> → <A HREF="<http://blade.nagaokaut.ac.jp/>"> と置換されていましたが、さきほど直しました。こういうバグを 見つけるたびに、自分の想像力のなさを思いしらされますね。 >>1745 なお > www.linux.co.jp 質問者が知らないのは仕方がないし、間違った回答をしてしまうのも 仕方がないですが、その間違った答えにツッコミ入れる回答者がいない コミュニティというのは悲惨ですね。 http://www.linux.co.jp/bbs/bbs1/bbs.cgi?num=2721&ope=sel http://www.linux.co.jp/bbs/bbs3/bbs.cgi?num=855&ope=sel |
おっと書き忘れ。 >>1747 rosegarden > -current の make world の際のログがありましたけど、 > 単純にコピーでいいようですね。 なるほど。手動でやる場合は、 ftp://current.jp.FreeBSD.org/pub/FreeBSD/snapshots/i386/log/ を見ればよかったわけですね。 |
>>1750 68userさん > > bladeクローンの<http://www.rr.iij4u.or.jp/~hideto-i/rb/yaiba/>が開発されています。 > あ、これまた嫌いなインタフェース (^^; そうですか? スレッド表示など特に秀逸だと思ったのですが。 <http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/22494?22494-23482> > うーん、わからんです。どの辺でしょう。 | ……wwwboard.cgi?log=531">名前を「やまい」元(山井・孝雄)に変えましたー/a></strong> (スコア: 1) Internet Explorerやw3m等から見るとソースがこんな具合になっています。で,見かけ上Aエレメントが閉じられていないために問題が起きるわけです。Lynxもそうですが,HTML解釈上は正しくDDエレメントの手前でアンカーを切っています。 原因は半角の「。」のようです。当方ではNetscape Navigator(4.7/2.0)だけが文字化けせずにAエレメントが閉じられていました。十分に検証せずに一方的に報告してしまったことをお詫びします。最初からNetscape Navigatorで確かめておけば原因もすぐに判明したと思います。 > あと、この BBS で <http://blade.nagaokaut.ac.jp/> という書き方をすると > <http://blade.nagaokaut.ac.jp/> > → <A HREF="<http://blade.nagaokaut.ac.jp/>"> > と置換されていましたが、さきほど直しました。こういうバグを > 見つけるたびに、自分の想像力のなさを思いしらされますね。 私の自作BBSでも同じ問題が発生していることを以前から認識していました。68userさんの掲示板ソースも参考にした覚えがあるので,ひょっとするとURL置換処理をコピーしていたのかも知れません。そのうち暇があれば直しておきます。 # 睡眠は大事です。かくいう私も最近……。 |
お邪魔致します。このサイトの情報はPerlでのネットワークプログラム作成時に 大変参考にさせて頂いております。以前も一度この掲示板にてお世話になりました。 本日はFTPとHTTPの比較について質問がありやって来ました。 昨日書店で立ち読みした、発売したばかりの ASCII NETWORK MAGAZINE4月号 http://biz.ascii24.com/biz/n-mag/article/2001/02/23/623348-000.html に、比較的初心者向けのFTPプロトコルの解説記事があったのですが、その冒頭に 「FTPはHTTPよりわずかに速いため、現在もよく利用される」 という(言い回しが違うかもしれません)記述がありました。これは本当でしょうか? CやPerlでsocket関数を使いTCPのアプリケーション層のプログラムを作っている と、プロトコルがFTPであるのかHTTPであるのか(もしくはSMTPやPOP3なのか)は データを受信(または送信)するアプリケーションが判断することで、ネットワーク上 では区別されないように思えました。 ポート番号で区別できるという考えもありますが、もちろんWell-Knownポート以 外を使ったHTTPやFTPでの通信も可能ですよね。 IPパケットレベルでHTTPとFTPのパケットが区別され、FTPの方がわずかに速く通 信が可能という事はあるのでしょうか?いきなりで申し訳ありませんが、お答え頂ければ 幸いです。 |
>>1752 CZ > そうですか? スレッド表示など特に秀逸だと思ったのですが。 あ、アイコンがわかりにくいので拒否反応を示しただけですから、 聞き流してくださいまし。 > Internet Explorerやw3m等から見るとソースがこんな具合に > なっています。 IE5.5 で確認しました。原因究明はウチに帰って元データを 見てからにします。 >>1753 金床 > FTPはHTTPよりわずかに速いため FTP はコントロールコネクションとデータコネクションがありますが、 HTTP はコネクションは1本しか張らないので、FTP の方がわずかに 速い *かも* しれません。でも、誤差の範囲内だと思います。 なので、(この部分を見る限りでは) 不適切な解説だと僕は思います。 > IPパケットレベルでHTTPとFTPのパケットが区別され、FTPの方が > わずかに速く通信が可能という事はあるのでしょうか? アプリケーションゲートウェイ (delegate とか) で帯域制限でも しない限り ありえないです。金床さんが書かれている考え方は 正しいです。 |
お答え頂きありがとうございます。 >FTP はコントロールコネクションとデータコネクションがありますが、 >HTTP はコネクションは1本しか張らないので、FTP の方がわずかに >速い *かも* しれません。でも、誤差の範囲内だと思います。 これは、FTPのデータコネクションでは目的のデータ(ファイルやファイルリストなど)しかネットワーク上を 転送されないのに対し、HTTPでは最初にHTTPリクエストがネットワーク上を通るので、その分という事でしょうか。 それとも、データコネクションでのデータ受信(送信)中も、コントロールコネクションが何らかの役割を果たして いるという意味でしょうか。つまり、転送されるデータが巨大になればなるほどFTPとHTTPで差がでてくるような 現象が存在するのでしょうか? 最初に書くべきでしたが、私がここで対象にしている「FTPとHTTPの転送速度の差」は、 数Kb〜数百Kb程度の小さなファイルでのやりとりではなく、巨大なデータ(少なくとも10Mb程度) で現れる(かもしれない)差の事です。 >アプリケーションゲートウェイ (delegate とか) で帯域制限でも >しない限り ありえないです。 なるほど、やはりそうですよね。少し安心しました。 |
# おぉすごい書き込み…うちとは大違い(笑) 68user>お使いの OS は何でしょうか? はい、初心者入門用?(笑)VineLinux1.1CRです。 ちなみに5秒sleepした結果以下のようなログが生成されています。 2001-02-28 00:59:06 12:59am up 13:13, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 01:00:02 1:00am up 13:14, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 01:01:03 1:01am up 13:15, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 01:02:06 1:02am up 13:16, 1 user, load average: 0.00, 0.00, 0.00 〜略〜 2001-02-28 03:57:05 3:57am up 16:11, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 03:58:06 3:58am up 16:12, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 03:59:06 3:59am up 16:13, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 04:00:05 4:00am up 16:14, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 04:01:06 4:01am up 16:15, 1 user, load average: 0.00, 0.00, 0.00 2001-02-28 04:02:06 4:02am up 16:16, 1 user, load average: 0.08, 0.02, 0.01 2001-02-28 04:03:06 4:03am up 16:17, 1 user, load average: 0.72, 0.21, 0.07 2001-02-28 04:04:07 4:04am up 16:18, 1 user, load average: 1.08, 0.40, 0.14 2001-02-28 04:05:07 4:05am up 16:19, 1 user, load average: 1.21, 0.56, 0.21 2001-02-28 04:06:05 4:06am up 16:20, 1 user, load average: 0.60, 0.50, 0.21 2001-02-28 04:07:05 4:07am up 16:21, 1 user, load average: 0.22, 0.41, 0.19 2001-02-28 04:08:06 4:08am up 16:22, 1 user, load average: 0.08, 0.33, 0.18 このマシンは試験用のマシンで、ペンティアム166です。 ちなみに、マシンフル稼働状態だとloadの数値は最大いくつ位になるのでしょう? 金床>FTPはHTTPよりわずかに速いため、 これ、自分も以前も気になっていましたが、回線トラフィックの方が 影響が大きそうなのと、特に支障がなさそう(知らなくても)なので、 ほったらかしの疑問にしていました(^^; httpと違ってftpはデーターコネクションとコントロールコネクションが 独立している為に僅かに早いのかな?なんて勝手に想像しています。 # 無駄な反応してすいません。 |
あら?いろいろと書いているうちに、前後してしまった…(^^; |
金床> 私も詳細は判りません(手抜き)ですが、調べるなら参考まで。 日本語RFC(FTP) http://hp.vector.co.jp/authors/VA002682/rfc959j.htm |
>>1755 金床 ああ、逆でした。 FTP はコネクションを 2本張るので、3way handshake が2回行われ、 その分 HTTP の方がわずかに速い *かも* しれません。 あと、FTP だと USER/PASS/TYPE/PORT などのコマンドを発行した 後はレスポンスを待たなければいけませんが、HTTP だと最初に リクエストを送って、あとは受け取るだけなので、そういう点でも HTTP の方が速い *かも* しれません。 それらの差が *仮に* あったとして、なおかつ数十 KB 程度の 小さいデータの転送時には *仮に* 体感できたとしても、 > 巨大なデータ(少なくとも10Mb程度)で現れる(かも > しれない)差の事です。 データの転送自体の仕組みは全く変わらないため、転送データの サイズが大きくなればなるほど、差は目立たなくなるでしょう。 |
>データの転送自体の仕組みは全く変わらないため、転送データの >サイズが大きくなればなるほど、差は目立たなくなるでしょう。 納得行く答えを頂きました。ありがとうございます。 >すなさん RFC情報、どうもありがとうございます。 |
>>1756 すな > 2001-02-28 01:00:02 5秒 sleep したのですから、00:59:57 あたりに cron から 起動されているわけですか。手元の FreeBSD 4.1-RELEASE と Solaris2.6 で負荷をかけて試してみましたが、1秒程度遅く なることはあっても、早く起動されることは一度もありません でした。 となると、Vine の cron が腐ってるということになりませんかね。 > マシンフル稼働状態だとloadの数値は最大いくつ位になるのでしょう? とりあえず http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1119 を読んでください。理論的には、load average はどこまででも 増やすことができます。 |
68user>となると、Vine の cron が腐ってるということになりませんかね。 なるほど、と言う事はcronの実装も結構ディストリビューションで違うのですね。 というか、さすがSolarisと言うべきなのか… # マシンの内臓タイマーの精度とかも関係有るのかな? # このマシンはかなり時間が狂うので…(1日数秒はあたりまえ) >http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1119 なるほど、これも大変勉強になりました。 最初は単純にシステム負荷を100で割った(理由不明)数値なのかと思っていました。 Windows等のシステム負荷表示とはまったく違って、100%以上の負荷まで表示 している訳ですね。(待ちプロセスを負荷と言うかは別として) 説明も大変判りやすかったです。 |
>>1750 68userさん > あと、この BBS で <http://blade.nagaokaut.ac.jp/> という書き方をすると > <http://blade.nagaokaut.ac.jp/> > → <A HREF="<http://blade.nagaokaut.ac.jp/>"> > と置換されていましたが、さきほど直しました。 自作BBSを見ると正規表現部分*だけ*はほぼ同じでした。やはりここの掲示板のソースを引き写していたようです。(perlではなくrubyですが。)で,直していて気が付いたことですが, s!<A HREF="(.*?)>">(.*?)<</A>!<A HREF="$1">$2</A><!g; も加えておいた方がよいのでは。 |
<<1763 ん? 訂正。 s!<A HREF="(.*?)>">(.*?)></A>!<A HREF="$1">>$2</A>>!g; s!<A HREF="(.*?)<">(.*?)<</A>!<A HREF="$1"><$2</A><!g; こうですね。 |
<<1764 ん?? 何やってるんだろう。 s!<A HREF="(.*?)>">(.*?)></A>!<A HREF="$1">$2</A>>!g; s!<A HREF="(.*?)<">(.*?)<</A>!<A HREF="$1">$2</A><!g; これでいいんですね。 <<1762 はタイプミス <<1763 は勘違いでした。 板汚しですみません。 |
あっ、ウチも同じバグがある(^^; でも、書き戻しですね…、ちょっとテストさせてくださいm(_o_)m <http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/> |
おー、これってきっちりやると結構面倒かも。で、30分あれこれ やった結果…これでどだ! $_='hoge<http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/>fuga'; s/&/&/g; s/\"/"/g; s/</</g; s/>/>/g; $http_pattern = '((http|https)://[a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+)'; $out = ''; while (1){ if ( ! s!(.*?)($http_pattern)!! ){ $out .= $_; last; } $out .= $1; $buf = $2; $buf =~ s/((<|>|").*)//; $rest = $1; $buf =~ s!$http_pattern!<A HREF="$1">$1</A>!; $out .= $buf; $_ = $rest . $_; } print "$out\n"; 無限ループが恐いので (^^;、まだ wwwboard.cgi には組み込んでません。 |
無茶苦茶効率悪そうだし、未定義変数使用の警告が出るけど…(^^; $_='hoge<http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/>fuga'; $http_pattern = '(http|https)(://)(([a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+?)(>|<|")|([a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+))'; s/&/&/g; s/\"/"/g; s/</</g; s/>/>/g; s!$http_pattern!<A HREF="$1$2$4$6">$1$2$4$6</A>$5!g; |
>>1767 68userさん おはようございます。 > おー、これってきっちりやると結構面倒かも。 こんなに奥が深いものとは想像もつきませんでした。以前これに着手しかけて断念した覚えはあったのですが,なぜ断念したかは覚えていません。 > 無限ループが恐いので (^^;、まだ wwwboard.cgi には組み込んでません。 早速ruby文に変換して実働掲示板に使っています。無限ループになっても利用者が二人しかいないサーバだし,HTTPならすぐ切れそうだということで,心配はしていません。 そんなわけで,いつもありがとうございます。これからもお世話になります。 |
こんなのも。 $_='hoge<http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/>fuga'; $http_pattern = '((http|https)://[a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+)'; s/&/&/g; s/\"/"/g; s/</</g; s/>/>/g; @items = split(/(<|>|")/, $_); foreach (@items){ s|$http_pattern|<A HREF="$1">$1</A>|g; } $_ = join('', @items); print "$_\n"; アルゴリズム・正規表現が複雑にならないという点で、これが 一番よさげかなぁ。でも動作チェックと速度計測をしなくては。 もっとよいのを思いついた方は教えてください。 |
>>1770 68user commit しました。とか言ってみたり。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi |
>>1770 68userさん いいですねぇ。 これ頂きます。perl4でも動くし(^^; |
質問したいことがあります。それはあるプログラムでPIDを変数として 持っているときに、その変数のPIDのプロセスを殺す方法があれば教えて欲しいのですが。 よろしくお願いします |
>>1773 purine 必ず OS 名や使用している言語を書いてください。 kill コマンドか、システムコール kill を使います。 http://X68000.startshop.co.jp/~68user/unix/pickup?keyword=kill&target=command&partial=on |
japu さん (http://www.japu.org/) より、source.cgi に関して CGI Security Advisoriy をいただきました。 これは他サイトに HTTP でアクセスし、GET した結果を表示 するもので、 「CGI の小部屋」http://X68000.startshop.co.jp/~68user/Cgi-room/ からは <!-- --> でコメントアウトしてあったものです (なぜコメントアウトしたかは忘れた)。 # また、昔利用していた http proxy 経由でアクセスするため、 # X68000.startshop.co.jp からは正しく動作しませんでした。 しかし、トップページからはスクリプトのソースを見ることができ、 source.cgi 自体も実行可能なままになっていました。これに対して http://X68000.startshop.co.jp/~68user/Cgi-room/source.cgi?url=http://www.yahoo.co.jp';ls%20*' といったアタックが可能でした。これは open(IN,"$httptalker -get '$url'|"); の部分で open(IN,"$httptalker -get 'http://www.yahoo.co.jp';ls *''|"); と解釈されます。open の引数に ; ? * | などを渡すと、perl は /bin/sh を起動し、/bin/sh がコマンドを実行しますので、任意の コマンドが実行可能です。 で、SA を受けて open(IN, "-|") or exec($httptalker, '-get', $url); と修正しました。この場合は perl が直接 fopen(3) を呼ぶため、' ; * など が特別扱いされることなく、$httptalker の引数にそのまま渡ります。 source.cgi の更新履歴: http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/Cgi-room/source.cgi セキュリティホールを指摘して下さった japu さんに感謝いたします。 んで、 「CGI の小部屋」http://X68000.startshop.co.jp/~68user/Cgi-room/ ですが、もうメンテする気力がないし、技術的な興味もないし (nslookup とか whois コマンド呼ぶだけのスクリプト見てもおもしろくないでしょ)、例えば ドメイン名検索とかならもっと便利なサイトがあるので、この掲示板で誰からも 反応がなければ近日中に消すつもりです。 |
>>1775 68user > open(IN, "-|") or exec($httptalker, '-get', $url); > と修正しました。この場合は perl が直接 fopen(3) を呼ぶため 訂正。perl が直接 pipe(2)、fork(2)、exec(2) するため、でした。 |
CGIの小部屋は消さないで欲しいです. メンテ終了ページは倉庫ディレクトリなどに 移設するのみにしていただけると嬉しいです. 簡単な内容のものでも,知らない人に説明するとき サンプル的に便利に利用させていただいております. |
>>1777 Netboy > CGIの小部屋は消さないで欲しいです. 了解いたしました。と決まれば、見られても恥ずかしくない 程度に brush up せねば。 |
いつも質問ばかりですいませんのふくしです。 Perl で use strict 'vars'; とすると、変数を使うときは パッケージを明示するか、my 宣言しないと怒られますが、 $a、$b という変数は怒られないで、%main:: シンボルテーブルに 追加されますね。$aa だとダメ。$c もダメ。なぜでしょう? 恐れ入りますがご存知の方はご教示ください。 |
>>1779 ふくし 想像でモノを言いますが、sort でセットされるのが $a と $b だから特別扱いされているんじゃないでしょうか。 # Ex. sort { $a cmp $b } |
ああ〜そかそかそかそか。使いますねえ sort で $a と $b。 すっきりしました。いつもありがとうございます!(^^) |
はじめまして。Telと申します。 以前、こちらで共有メモリについて少し触れられていたようなので、質問をしてみようと思いました。 現在、共有メモリ上にフラグの役割をもつ変数を用意し、複数のプロセス間でそのフラグを参照し、フラグの状態によって処理の分岐をするというプログラムを書いています。 そこでわからない点が出てきました。 共有メモリに変数を用意する方法の記述についてはサンプル等を見て作成することができると考えています。 しかし、それを参照する各プロセス側での記述方法について、サンプルが少なくよくわからないのです。 たとえば int flag; char data[datalength]; という2つの変数が共有メモリにある場合、flagの内容によってdataに書き込む内容を分けるという処理は具体的には、どう記述すれば良いのでしょうか。 プログラムAは flag==1 ならば"good morning." flag==2 ならば"good afternoon." flag==3 ならば"good evening." をdataに書き込む。 プログラムBは flag==1 ならば"beakfast." flag==2 ならば"lunch." flag==3 ならば"dinner." をdataに書き込む。 上記のような場合、AとBそれぞれではどう宣言してからflagやdataを使うのでしょうか。 勉強不足からくる質問だと思いますがUNIXの知識がない為なのか、書籍の選びかたが悪い為なのか、難しくて具体的な記述方法がわからないためにこちらにきてみました。 どうかご指導願います。よろしくおねがいします。 |
UNIXでパーミッションを変更しようとしたのですが 以下のメッセージで変更できません。どうしてですか? 502 SITE command not implemented. |
>>1783 ゆう > 以下のメッセージで変更できません。どうしてですか? > 502 SITE command not implemented. サーバ側でサポートしていないからでしょう。 SITE コマンドと言うのは標準的でないコマンドのことです。 だから、理屈の上では ftp>SITE SHUTDOWN NOW なんて出来ても別に不思議ではないと思います。 それでは身も蓋もないので、ためしに、 ftp>SITE CHMOD 600 とか win98 の ftp.exe だと ftp>literal SITE CHMOD 600 (だったかな?) とかしてみて駄目だったら、駄目なんだと思います。 どっちにしても、管理者に聞いてみないと、はっきりしたことは 分からないと思います。 |
>>1782 Tel 書き込み拝見しましたが、どうも共有メモリ云々でつまずいて おられるのではなく、単純に C 言語で目的を 達成するプログラムを書く方法について悩まれているように思えます。 # もしも違いましたら、ごめんなさい。 # 何をどうされたいのかが、不明で推測で書いていますので、 # 御理解ください。 shared memory を使ったプログラミングは経験が無いんですが、 ちょっと本を見たら、初期化やセットアップは別として メモリへのアクセスは普通に配列や malloc したバッファへの アクセスと変わらないようでした。 失礼を承知で書きますが、共有メモリを使わないで、固定したファイルに flag と data を書き込んで、プログラム A と プログラム B で やりとりをするようなものは、お書きになられますか? もしそれが可能なら、似たような手順で出来そうです。 # もしも、既にそんなことは可能であると言うのでしたら、 # 失礼お許しください。 ちなみに、私の場合には 「UNIX ネットワークプログラミング」という本を参考にしました。 トッパンからでている本です。ちょっと眺めた程度だと、 共有メモリの部分は結構丁寧に書いてあって、 サーバとクライアントのサンプルもありました。 ざっと見たかんじでは、分かりにくいと言う感じは無かったですね。 # これって、ここで紹介されている本の旧版なのでしょうか? # 今は二分冊になっているのですね。私のには IPv6 のことは # 書いてないです。 |
ちょっと、すごい初歩的な質問なのですが、 一般に top コマンドの出力でメモリの状況が出力されますよね。 last pid: 20294; load averages: 0.19, 0.11, 0.04 up 1+08:42:31 19:52:21 30 processes: 1 running, 29 sleeping CPU states: % user, % nice, % system, % interrupt, % idle Mem: 35M Active, 6528K Inact, 12M Wired, 3448K Cache, 14M Buf, 3228K Free Swap: 128M Total, 6588K Used, 121M Free, 5% Inuse 上のような奴です。Mem のところの Active, Inact, Wired, Chache, Buf, Free の合計ってだいたい搭載された物理メモリの量に近いものだと思っていたのですが、 これはあたっていますか? (ただし、10% 程度の増減は許容するものとします。) 実は、3 月 1 日前後に CVSup した current なのですが、 top の表示が次のようになっています。 last pid: 7969; load averages: 0.94, 0.74, 0.40 up 0+00:11:35 19:59:58 22 processes: 2 running, 20 sleeping CPU states: % user, % nice, % system, % interrupt, % idle Mem: 2927K Active, 12M Inact, 6285K Wired, 2K Cache, 35M Buf, 41M Free Swap: 256M Total, 256M Free 最初の top コマンドの表示は別マシンなのですが、上のマシンは 搭載している物理メモリは 256 MB なのに上のようになっています。 大雑把に計算しても Mem の合計値は 150MB 行っていません。 何か、私は勘違いでもしているのでしょうか? # というか make world 中に何度も kernel panic 起こすし。 # fsck は大活躍だし。さっきは自動修復が効かずに # /dev/ad0s2f: UNEXPECTED SOFT UPDATE INCONSISTENCY; RUN fsck MANUALLY. # なんていうメッセージもでました。 # こういうことがしょっちゅう起こると、もう笑いしかでませんね。 |
>>1784 rosegarden >> 502 SITE command not implemented. は、SITE コマンドは未実装だよ、という FTP サーバ側の メッセージなので、chmod は無理です。 > ftp>literal SITE CHMOD 600 ほほー、literal というのがありますか。僕が知っていたのは quote site chmod 600 です。 あと、前にここで書いたかもしれませんが、site index ちうのが 便利です。例えば ftp://ftp3.jp.FreeBSD.org にログインして、 ftp> site index perl-5 などなど。 >>1785 rosegarden > 「UNIX ネットワークプログラミング」という本を参考にしました。 > トッパンからでている本です。 > # これって、ここで紹介されている本の旧版なのでしょうか? > # 今は二分冊になっているのですね。 確か三分冊になったのですが、トッパンはなくなったので、ピアソン エデュケーションが版権を引き継ぎました。 http://www.mmjp.or.jp/pearsoned/washo/network/wa_net28-j.html http://www.mmjp.or.jp/pearsoned/washo/network/wa_net27-j.html 洋書の Vol.3 が出ているのかどうかはわかりません。 作者が亡くなったので、永遠に出ないのかもしれません。 >>1786 rosegarden > Mem のところの Active, Inact, Wired, Chache, Buf, Free の > 合計ってだいたい搭載された物理メモリの量に近いものだと > 思っていたのですが 僕もそのように認識しています。current ですからちょっと 様子を見てはどうでしょう。 # VM まわりなんてとても僕の手に負えないので、役に立たない # 返事しかできないです。ごめんなさい。 |
今日は。 本来のLOGIN パスワードを忘れてしまった場合はOSからインストールし直すしかないのでしょうか? |
>>1788 ミング > 本来のLOGIN パスワードを忘れてしまった場合はOSから > インストールし直すしかないのでしょうか? root でログインして、passwd コマンドで該当ユーザの パスワードを再設定します。root のパスワードも忘れて しまったのなら、 http://www.jp.FreeBSD.ORG/QandA/HTML/464.html http://www.jp.FreeBSD.ORG/QandA/HTML/1638.html 的なことをしますが、あなたの使っている OS が何なのか 全くわからないので、これ以上はなんとも。もし Windows なら僕にはわかりません。 |
>>1787 68user > > ftp>literal SITE CHMOD 600 > ほほー、literal というのがありますか。僕が知っていたのは > quote site chmod 600 です。 良く分からないのですが、使ってみた感じだと telnet コマンドを ftp クライアント代わりに使うような場合に打ち込むコマンド類が これで打てるようになるみたいですね。 > あと、前にここで書いたかもしれませんが、site index ちうのが > 便利です。例えば ftp://ftp3.jp.FreeBSD.org にログインして、 > ftp> site index perl-5 > などなど。 ああ、これ便利ですね。ls-lR でも検索しているのでしょうか? > > # 今は二分冊になっているのですね。 > 確か三分冊になったのですが、トッパンはなくなったので、ピアソン > エデュケーションが版権を引き継ぎました。 まさか三分冊というのまでは知りませんでした。 色々ありがとうございます。 > > Mem のところの Active, Inact, Wired, Chache, Buf, Free の > > 合計ってだいたい搭載された物理メモリの量に近いものだと > > 思っていたのですが > 僕もそのように認識しています。current ですからちょっと > 様子を見てはどうでしょう。 結局、アドバイス頂いてから、ソースを色々調べて見たら、 kernel ではなくて top コマンドの表示に問題があることが分かりました。 ページ数で取得したメモリの量を KB 単位に変換してないので 変な結果になるようです。 ちょっとまだ断定的なことは言えないのですが、 とりあえず、バグリポートしておきました。 |
68Userさん 回答ありがとうございます。 OSはSolaris7です。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー root でログインして、passwd コマンドで該当ユーザの パスワードを再設定します。root のパスワードも忘れて しまったのなら、 http://www.jp.FreeBSD.ORG/QandA/HTML/464.html http://www.jp.FreeBSD.ORG/QandA/HTML/1638.html 的なことをしますが、あなたの使っている OS が何なのか 全くわからないので、これ以上はなんとも。もし Windows なら僕にはわかりません。 本来のLOGIN パスワードを忘れてしまった場合はOSからインストールし直すしかないのでしょうか? |