>>1798 筋肉。 >>1799 通行人ですが、一言。 >>1801 gixs ここが 2ch 的な場になるのと、2ch 的システムを取り入れるのは、 gixs さんの言われる通り別問題でしょう。2ch 的システムは結構 使いやすいと思います。 で、これまでスレッドタイプは特に検討していなかったのですが、 ツリー型 http://www.so-net.ne.jp/ClubHouse/room/pc_scramble/pc_scramble.html と 非ツリー型 http://www.wakusei.ne.jp/twn/lng/green/wwwlng.cgi http://cocoa.2ch.net/unix/index2.html がありますね (とほほラウンジも 2ch も、データ構造としては 同じでしょうから、両方の形式で表示できるようにしてもいいし)。 どちらがよいですか。また、その理由があれば教えて下さい。 ちなみに、なぜ現在のようなウナギの寝床式掲示板にしたかと いうと、管理者が楽だからです。「新しい話題だから新しいスレッドを 立てろ」だの「クソスレ立てんなゴルア」とか「1の主治医です」とか 書かなくて済むし ;-) でも、情報が混ざって探しづらいということならば検討はしてみます。 # それを補うつもりで >>数字 形式のリンクを導入してみました。 # 将来的にはその情報からツリー形式を抽出できないかな、と。 あと、できればご自分が使いにくいと思う理由を分析していただ けるととってもありがたいです (それが一番難しいんですけれども)。 使いやすい掲示板というのは永遠の課題ですので、今回のような 大規模な改変や、こまかなユーザインタフェースまわりまで、提案 していただけるのはありがたいことです。 しかし、最近これまでにも増して忙しくなってしまったので、 あまり期待はしないで下さいね。 |
>>1804 68user >穴あきファイルの作り方。 > % perl -e 'open(OUT,">tmp");seek(OUT,1000000,0);print OUT "a"' ああ、わかりました。lseek はファイルサイズを越えても seek できるという性質を使っているんですね。 古い UNIX のシステムコールの本で見たことあるのですが、 その時には何が何だかさっぱり分かりませんでした。 man lseek しても出てますね。 >The lseek() function allows the file offset to be set beyond the end of >the existing end-of-file of the file. If data is later written at this >point, subsequent reads of the data in the gap return bytes of zeros (un- >til data is actually written into the gap). 色々とありがとうございます。勉強になります。 >>1805 68user >ちなみに、なぜ現在のようなウナギの寝床式掲示板にしたかと >いうと、管理者が楽だからです。「新しい話題だから新しいスレッドを >立てろ」だの「クソスレ立てんなゴルア」とか「1の主治医です」とか >書かなくて済むし ;-) これは確かにそうですね。スレッド式にしても書き込む方が神経を 使わないとスレッドの意味が無くなるでしょうし。 個人的にはどちらでも構わないのですが、スレッド式にしたときに 68user さんがどんなスクリプトを書かれるのかは興味のあるところです。 |
ツリー式だと、レスのレスのレスの・・・ってやってくとどんどん 右端によってって、めちゃ見にくいと思う。 とほほラウンジは、スレ見る度にいちいちマウスうごかすのがめんどう。 ということで、2chは、やはりすばらしいと思う。 |
>>1770 68user http://yamama.51.net/cgi-bin/minibbs.cgi?log=395 うひひひ。 えっと、自動リンクのところを、 こんな感じにしてみた。$strは、もうURLエンコードされてるっていうことで。 &以外は、はっちゃいけないんだから、、、。 $str =~ s#(s?https?://(?:[\-_.!~*'()a-z0-9;/?:\@=+\$,%\#]|&)+)#<a href="$1">$1</a>#ig; |
Xlibでの質問です。 日本語文字列をウィンドウの左上(x:0,y:0)に表示するのを書いています。 ソースコードはこれです。 http://homepage1.nifty.com/tyuuki/tmp/Makefile http://homepage1.nifty.com/tyuuki/tmp/drawstr.c 実行結果は(うちのtwmだと)このようになります。 http://homepage1.nifty.com/tyuuki/tmp/drawstr.jpeg なぜか上の方に隠れてしまいます。 本当は、 http://homepage1.nifty.com/tyuuki/tmp/drawstr2.jpeg のようになってほしいんです。 # これは、多分タイトルバー(?)の長さを求めてやればいいんでしょうけど…。 XCopyAreaで0, 0を指定してるのにこうなってしまうのは、どうしてなんでしょうか? 教えてください。 |
>>1807 ひろし。 > ツリー式だと、レスのレスのレスの・・・ってやってくとどんどん > 右端によってって、めちゃ見にくいと思う。 それは同感ですね。あと、現 SEGA BBS のような、ツリーを一括して 表示するのは最悪だと思います。とにかく見にくい。 >>1808 やまま > こんな感じにしてみた。 どうもです。参考になります。 >>1809 Yuuki > なぜか上の方に隠れてしまいます。 XDrawString/XmbDrawString に与える原点 x,y は、文字列の左下の 座標を与えます。本当はもうちょっと複雑で、原点に 10,10 を与えた としても、フォントの lbearing, descent の値によっては、9,10 や 10,11 にドットが描画される可能性はあります。そこらへんの情報は XmbTextExtents で取得できます。 |
このサイトのUNIXシステムコールのopendirの説明にあったサンプルコードを打ち込んでみたのですが、 ファイル名の頭2文字が欠けてしまいます。dir->d_nameに-2すればファイル名の頭を指してくれるのですが 何故なんでしょう。OSは SunOS 5.5.1です。sys/dir.hを見てもちゃんとファイル名エントリがd_nameで定義されているのに。何か障害になるものがあるのでしたらお教え下さい。 |
>>1811 Donchan SunOS上でファイル名2文字切り落としが発生するということであれば、 おそらく使用されているコンパイラに問題があるものと思われます。 以下のアナウンスが参考になるのではないでしょうか。 http://www.sun.co.jp/tech/faq/solaris2_ja/Q6.19.html 以上、通りすがりの者でした。 |
>>1810 68user > XDrawString/XmbDrawString に与える原点 x,y は、文字列の左下の > 座標を与えます。 今まで左上にだと思いこんでました…。 > そこらへんの情報はXmbTextExtents で取得できます。 これで解決しました。 http://homepage1.nifty.com/tyuuki/tmp/drawstr.c このようになりました。 ありがとうございます。 |
>>1813 Yuuki > これで解決しました。 > http://homepage1.nifty.com/tyuuki/tmp/drawstr.c http://homepage1.nifty.com/tyuuki/tmp/drawstr2.c ですよね。 誠に勝手ながら、後から見た人のために drawstr2.c を貼っておきます。 行数短縮のため、少々コードスタイルをいじらせていただきました。 もしまずければ削除いたします。 ---- #include <stdio.h> #include <locale.h> #include <X11/Xlib.h> #include <X11/Xutil.h> static XFontSet load_font( Display *display, const char *font_names ){ char **miss_str; int miss_cnt; char *def_str; return XCreateFontSet( display, font_names, &miss_str, &miss_cnt, &def_str ); } static int ask_text_height( XFontSet font, const char *str ){ XRectangle rect; XmbTextExtents( font, str, strlen( str ), &rect, NULL ); return rect.height; } int main( int argc, char **argv ){ Display *display; Window window; GC gc, gc_clr; unsigned long background, foreground; XFontSet font; Pixmap pixmap; const int width = 640; const int height = 480; const char *message = "こんにちは。"; if ( setlocale( LC_CTYPE, "" ) == NULL ){ printf( "setlocale error\n" ); exit( 0 ); } display = XOpenDisplay( NULL ); font = load_font( display, "-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*,*" ); background = WhitePixel( display, 0 ); foreground = BlackPixel( display, 0 ); window = XCreateSimpleWindow( display, DefaultRootWindow( display ), 0, 0, width, height, 0, 0, background ); pixmap = XCreatePixmap( display, window, width, height, DefaultDepth( display, 0 ) ); gc = XCreateGC( display, window, 0, 0 ); XSetBackground( display, gc, background ); XSetForeground( display, gc, foreground ); gc_clr = XCreateGC( display, window, 0, 0 ); XSetBackground( display, gc_clr, background ); XSetForeground( display, gc_clr, background ); XMapRaised( display, window ); XSelectInput( display, window, ExposureMask ); while ( 1 ){ XEvent event; XNextEvent( display, &event ); switch ( event.type ){ case Expose : XFillRectangle( display, pixmap, gc_clr, 0, 0, width, height ); XmbDrawString( display, pixmap, font, gc, 0, ask_text_height( font, message ), message, strlen( message ) ); XCopyArea( display, pixmap, window, gc, 0, 0, width, height, 0, 0 ); break; } } } |
>>1814 68user > http://homepage1.nifty.com/tyuuki/tmp/drawstr2.c ですよね。 すいません。 間違えていました…。 > もしまずければ削除いたします。 全然まずくないです。 今までのファイルをまとめておきました。 http://homepage1.nifty.com/tyuuki/archive/drawstr.tar.gz |
FreeBSD4.2R をインストールしたのですが、サウンドの設定がよくわからずつ まずいてしまいました。いろいろHPや書籍を調べて以下のような処理を行いま したが、以前としてサウンドが鳴りません。設定で間違っている箇所が あれば指摘して頂きたいです。ちなみに、サウンドカードはYamahaのYMF740です。 1. カーネルの再構築 # cd /usr/src/sys/i386/conf/ # cp GENERIC MY_KERNEL # vi MY_KERNEL ------------------------- 以下の内容を追加 # For PnP/PCI sound cards device pcm ------------------------- # config MY_KERNEL # cd ../../compile/MY_KERNEL # make depend # make install 2. デバイスファイルの作成 # cd /dev # ./MAKEDEV snd0 以下は関係ありそうなエラーログです。 > dmesg | grep pcm pcm0: <Yamaha DS-1 (YMF740?)> irq 9 at device 10.0 on pci0 pcm0: unable to map register space device_probe_and_attach: pcm0 attach returned 6 > cat /dev/sndstat cat: /dev/sndstat: Device not configured |
>>1816 taka > FreeBSD4.2R をインストールしたのですが、サウンドの設定が > よくわからずつまずいてしまいました。 えっと、サウンド・PnP まわりはいまだに何がなにやらわかりません。 うちでは device pcm を追加し、OS ブート時に boot -cv でコンフィグ モードにして > pnp 1 0 bios enable irq0 5 drq0 1 port0 0x220 port1 0x0 port2 0x388 と設定しました。 なんで IRQ が 5 なのか、なんで PnP なのに手動で設定しないと いけないのかさっぱりわかりません。pnpinfo(8) の出力も全く理解 できないし…。 僕は、IRQ って ISA のみにしかない概念? PCI のサウンドカードって あるの? …てな知識レベルなので、FreeBSD-users-jp などで質問された 方が早いかもしれません。 どこかにわかりやすい解説はないかなぁ。 |
>>1816 taka 私の場合次のようになっています。もっとも 4.3-BETA ですが、 要領は同じだと思います。 # For non-pnp sound cards with no bridge drivers only: device pcm0 at isa? irq 10 drq 1 flags 0x0 # # For PnP/PCI sound cards device pcm # The bridge drivers for sound cards. These can be seperately configured # for providing services to the likes of new-midi (not in the tree yet). # When used with 'device pcm' they also provide pcm sound services. # # sbc: Creative SoundBlaster ISA PnP/non-PnP # Supports ESS and Avance ISA chips as well. # gusc: Gravis UltraSound ISA PnP/non-PnP # csa: Crystal Semiconductor CS461x/428x PCI # For non-PnP cards: device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 #device gusc0 at isa? port 0x220 irq 5 drq 1 flags 0x13 sbc ドライバか gusc ドライバのいずれかを有効にしてみてください。 このへんは試行錯誤がいるかもしれません。 LINT から関係する部分を copy&paste してきて 自分に関係ない部分をコメントアウトすると面倒ないです。 |
>>1812 通行人 パスの先頭に/opt/SUNWspro/bin/を追加することで正常に動作しました。互換性の問題だったのね……。 |
いきなりの質問でごめんなさい。 こちらの掲示板にはかなり詳しい方がいらっしゃるようなので、 教えて頂きたいのです。 今、UNIX上で動くクライアントサーバをC言語で作っています。 (ほとんど経験がないので、勉強しながらという感じです。) ちょうど、こちらに参考になるサンプルがあったので、それを元に 作っているところです。 自分の環境で、クライアントとサーバ間のソケット通信をすることが できることを確認したところです。 ここからが良くわからないところなのですが、 クライアントが複数あって、それぞれが別の処理を行う時、 サーバ側としては、そのクライアントをどう区別したら良いのでしょうか? selectを使って、任意のソケットに対して任意のデータを送信することは わかるのですが、では、任意のクライアントプロセスを区別するのは どうすれば良いのかが、いまひとつ、ぴんとこないのです。 たとえば、サーバ側の処理として、 クライアントA:サーバに「aaa」→「AAA」と変換してecho。 クライアントB:サーバに「bbb」→「BBBBB」と変換してecho。 クライアントC:サーバに「ccc」→「C」と変換してecho。 というのがあるとします。 各クライアントが順不同のタイミングで接続してきた場合、 どのクライアントがどのソケットに接続しているのかを知るのには、 どのような方法があるのでしょうか? ついでですが、クライアントは、おなじ内容のものが複数接続してくる 場合もあります。(AとA'とA''、みたいに。) つまり、ソケットディスクリプタのID(と言って良いのでしょうか? よく、 sd[0]とかsd[i]とかと書かれているものです。)と クライアントをどうリンクさせれば良いのかがわからない、んです。 C言語で処理するレベルでの話だろうとは思うのですが、 具体的なサンプルがなくて、方法を理解することもできず、困っています。 どうぞ、知恵をお貸しください。 いきなり現れて勝手なお願いをしていますが、よろしくお願いします。 |
>>1820 みみ > 各クライアントが順不同のタイミングで接続してきた場合、 > どのクライアントがどのソケットに接続しているのかを知るのには、 > どのような方法があるのでしょうか? http://X68000.startshop.co.jp/~68user/net/c-echo-2.html を見てください。 getpeername(sock, (struct sockaddr *)&peer_sin, &len) でソケットの接続先のアドレス (IP アドレス+ポート番号の 情報) が peer_sin に格納されます。 - IP アドレス … inet_ntoa(peer_sin.sin_addr) - ホスト名 … gethostbyaddr - ポート番号 … ntohs(peer_sin.sin_port) でそれぞれ取得できます。 そのページのサンプルの echo-server-select.c では、 accept したときに struct CLIENT_INFO という構造体に ホスト名・IP アドレス・ポート番号を格納し、その後 クライアントの情報が必要になったら struct CLIENT_INFO を 参照していますが、毎回ソケットに対して getpeername しても動作はします。 |
素早い解答、ありがとうございます。 確認の意味で、質問をさせて頂きます。 そうすると、サーバ側の処理としては、下記のように なるということでしょうか? ・クライアントからの接続がある。 (sd[i]がインクリメントされる。) ・接続してきたクライアントからの処理要求がある。 (ここで、クライアント側のプロセスが何なのかが判明する。) ・getpeername を行うことで、sd[i]の”i”の値を得る。 (これにより、接続元クライアントのプロセスとを リンクさせることができる。) 上記のような解釈で、誤りがありませんでしょうか? getpeername については、もう少し勉強をしてみます。 (実は、サンプルプログラムで良く理解できていなかった部分です。 クライアント情報を格納しているのは判ったのですが。 付け焼き刃のかなしさです。でも頑張ります。) 本当に、ありがとうございます。 後程、結果を報告に来ます。 |
>>1822 みみ > ・クライアントからの接続がある。 > (sd[i]がインクリメントされる。) > ・接続してきたクライアントからの処理要求がある。 > (ここで、クライアント側のプロセスが何なのかが判明する。) > ・getpeername を行うことで、sd[i]の”i”の値を得る。 > (これにより、接続元クライアントのプロセスとを > リンクさせることができる。) うーん、説明が難しいですね。一度わかってしまえば何てことはない のですが…。 クライアントとサーバとの接続点がソケットです。複数のソケットが あるとき、それらを識別するのはソケットディスクリプタ (3 とか 4 などの整数値) です。別のソケットには、必ず別のソケットディスク リプタが割り振られます。 http://X68000.startshop.co.jp/~68user/net/c-echo-2.html で言うと、 for ( i=0 ; i<FD_SETSIZE ; i++ ){ if ( FD_ISSET(i, &target_fds) ){ if ( i == listening_socket ){ accept して、新クライアントのソケットディスクリプタを取得 } else { ソケットディスクリプタ i からデータが送られてきた } } } という感じです。例えば i==5 のとき FD_ISSET が真ならば、 今からやりとりしたいのは「ソケットディスクリプタ 5」です。 このクライアントとの接続が切れない限り、この番号は不変です。 データを読みたいなら read(5, buf, sizeof(buf)) すればよいし、 データを送りたいなら write(5, "hoge", sizeof("hoge")-1) とします。 if ( i == listening_socket ){ accept して、新クライアントのソケットディスクリプタを取得 } else { len = read(5, buf, sizeof(buf)); write(5, buf, len); } とすれば、それで echo サーバのでき上がりです。ソケット ディスクリプタ 5 からデータを読んで、ソケットディスクリプタ 5 にデータを書いているので、echo した結果が別クライアントに 送られることはありません。 つまり、ソケットがいくつあっても「ソケットディスクリプタが 確定している=クライアントが識別できる」と言えます。 getpeername は、相手側の IP アドレスやポート番号を知りたい 場合に使いますが、根本的にはそれらの情報がなくてもどの クライアントとやりとりしているのか区別できます。 |
あ、また書き込んでくださったのですね。 重ね重ね、ありがとうございます。 >>1823の内容からすると、 「selectにより、各クライアントを固有のものとして認識できる為、 サーバ側でプログラム的に管理しなくても大丈夫。」 ということなのでしょうか? (うう、一所懸命にプログラム書いちゃいましたけど。) 昨日の書き込み(1822)の内容の処理を行うプログラムは、 意図した通りの動作をしていることは、確認できました。 が。 システムコールに依存した方が信頼性は高いので、 もう一度、見直すことにします。 ありがとうございました。 また、報告に伺います。 |
最初のご質問では >>1820 みみ > どのクライアントがどのソケットに接続しているのかを知るのには とありましたので、IP アドレスやポート番号などの情報が 得たいのかと思い getpeername を使えばよいという回答を しましたが、どうやらそうではないのですね。 TCP で、複数のクライアントが接続してきたときに、クライアントを 区別するために、サーバ側で何か処理を行う必要があるか、という 意味ならば、 >>1824 みみ > 「selectにより、各クライアントを固有のものとして認識できる為、 > サーバ側でプログラム的に管理しなくても大丈夫。」 という認識でよろしいかと思います。 |
せっかく指摘して頂いたのに返答遅れてすいませんでした。 >>1818 rosegarden 指摘して頂いたとおり、LINTを見ると関係ありそうなものはいかの 通りでした。 # snd: Voxware sound support code # sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum # sbxvi: SoundBlaster 16 # sbmidi: SoundBlaster 16 MIDI interface # pas: ProAudioSpectrum PCM and MIDI # gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX # gusxvi: Gravis Ultrasound 16-bit PCM (do not use) # mss: Microsoft Sound System # css: Crystal Sound System (CSS 423x PnP) # sscape: Ensoniq Soundscape MIDI interface # sscape_mss: Ensoniq Soundscape PCM (requires sscape) # opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum # uart: stand-alone 6850 UART for MIDI # mpu: Roland MPU-401 stand-alone card sbcドライバかguscドライバのいずれかを有効にすればよいとの後指摘でした が、私の使用しているドライバはYamahaのYMF740なので上記のうち 「opl」を有効にするのかなと初心者なりに考えて見たのですが。 >>1817 68user まだ、勉強不足でよくわからないのですが、コンフィグモードというもので 設定すると何らかの設定ファイルが書き変わるのでしょうか? まだ、恐くて試していません。 |
>>1826 taka > 指摘して頂いたとおり、LINTを見ると関係ありそうなものはいかの > 通りでした。 > > # snd: Voxware sound support code > # sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum > # sbxvi: SoundBlaster 16 4.2-RELEASE でサウンドを利用する場合 2 通りの方法があります。 (1) pcm ドライバを使う (2) snd ドライバを使う 4.2-RELEASE までなら、snd ドライバが使えます。 で、taka さんが関係ありそうとおっしゃっている opl ドライバは snd ドライバを使う際に使います。 これは pcm ドライバとは一緒に使えません。 (忘れたのですが、指定しても片方が無効になるのだと思いました。) pcm ドライバを使うのなら前の私の書き込みのように sbc ドライバか gusc ドライバあたりを有効にします。 一方, snd ドライバを使うのなら、taka さんの場合なら、 おそらく snd, sb, sbxvi, sbmidi, opl あたりを有効にするのだと 思います。sbxvi あたり存在しないというメッセージが出るかも知れませんが、 そのへんは試行錯誤でやってみてください。 どうしても opl がよさそう、あるいは、簡単そうというのなら、 snd ドライバを有効にして pcm ドライバは使いません。 余談ですが、snd ドライバを使う方法は「FreeBSD 徹底入門」あたりに 書かれている方法ですが、このドライバ自体かなり古いので、 現在では起動時に warning が出ます。 この warning が出ても害はないので心配はいりません。 ところが、snd ドライバは今年に入ってからなくなったと思うので、 4.3-RELEASE からは snd ドライバは使えません。 |
>>1827 rosegarden 親切に説明して頂きありがとうございます。 >4.2-RELEASE でサウンドを利用する場合 2 通りの方法があります。 >(1) pcm ドライバを使う >(2) snd ドライバを使う 早速、上記(1)の方法でカーネルの再構築を行ってみました。 以前の書き込みを参考にして # For non-pnp sound cards with no bridge drivers only: device pcm0 at isa? irq 10 drq 1 flags 0x0 # # For PnP/PCI sound cards device pcm を追加し、sbcドライバ、guscドライバを交互に有効にしてみました。 dmesgの関係ありそうなログは前と変わらず、下記の通りでした。 pcm0: <Yamaha DS-1 (YMF740?)> irq 9 at device 10.0 on pci0 pcm0: unable to map register space % cat /dev/sndstat cat: /dev/sndstat: Device not configured どちらのドライバを用いても認識していないみたいでした。 --- ところで、話は変わるのですがやはり初心者にはFreeBSDは敷居が高いものな のでしょうか?Linuxなどは書籍などが豊富で分かりやすく書かれたものが多 い印象を受けます。一方、FreeBSDは書籍も少なく、またある程度の知識を もっていないと私の場合のようにすぐつまづくように感じました。 |
>>1828 taka > mesgの関係ありそうなログは前と変わらず、下記の通りでした。 > pcm0: <Yamaha DS-1 (YMF740?)> irq 9 at device 10.0 on pci0 > pcm0: unable to map register space うーん、4.2-RELEASE だとまだ pcm ドライバが完全じゃないからかな? いま出張中で、-current のソースしかてもとに無いし、 cvsweb で時間をかけて調べられる状態でもないので、 はっきりしたことは言えませんが、 ds1.c: $FreeBSD: src/sys/dev/sound/pci/ds1.c,v 1.21 2000/12/25 01:42:13 cg Exp $ となっていますので、snd ドライバを使うしかないのかも知れません。 上の 2000/12/25 という日付は 4.2-RELEASE が出た後の日付ですから。 あと変だなと思う点は port アドレスが認識されていない点です。 >pcm0: <Yamaha DS-1E (YMF744)> port 0xfc8c-0xfc8f,0xfcc0-0xfcff \ >mem 0xfedf8000-0xfedfffff irq 9 at device 9.0 on pci0 ちゃんと認識されている場合、こんな感じになると思うのですが。 私の知っている範囲で言えば、サウンドドライバの設定には問題無いので、 他の設定、例えば PnP BIOS とかノートパソコンなら PCCARD の設定なんかの問題も考えられるように思います。 |
>>1829 rosegarden 度々すいません。 >ds1.c: > $FreeBSD: src/sys/dev/sound/pci/ds1.c,v 1.21 2000/12/25 01:42:13 cg Exp $ 確認して見たところ ds1.c : $FreeBSD: src/sys/dev/sound/pci/ds1.c,v 1.8.2.4 2000/10/05 05:12:31 cg Exp $ となっていて、随分古いような気がしました。 そこで、良く分からないのですが単純に「ds1.c」だけ currentから最新のものをダ ウンロードしてカーネルを再構築するという方法でよろしいのでしょうか? いろいろ関連するソースもあると思うので、単純にそのようにしてよいものか 分かりませんが |
いつもこのページを参照させていただいております。 今回初めて書きこませていただきます。 Linux上のTrueColorのディスプレイで実験データ表示用の カラー等高線の図を書くXプログラミングの必要に迫られました。 当初は等高値に値するRGBの各256値を配列に入れて、 XlibのXCreateImage()を使って画面表示すればOKと思っておりました。 しかし、どうやらXウインドウにRGBAフォーマットで渡さなければうまく 表示出来ないようで、単色の色をRGB値で設定してもアルファー値の設定 方法がわからないために「砂あらし」画面の様な画面しか表示されません。 (白、黒などはRGB=各0、256、アルファー=0,256とすれば表示できる) 設定を変えて何とかしても良いのでしょうが、RGBAについて理解して おきたいために、RGBAでの表示にこだわりたいと思います。 何らかのX11上のライブラリ、もしくはRGBA規格についてご存じのお方 ご教授お願いいたします。 |
>>1830 taka > そこで、良く分からないのですが単純に「ds1.c」だけ currentから最新のものをダ > ウンロードしてカーネルを再構築するという方法でよろしいのでしょうか? > いろいろ関連するソースもあると思うので、単純にそのようにしてよいものか > 分かりませんが いま自宅に戻ったので、ソースを見比べてみたのですが、だいぶ変わっていますね。 このソースの感じをみると ds1.c の入れ換えだけでは無理だと思います。 4.2-RELEASE 相当のソースと最新のソースを比べると激しく変化しています。 結局、カーネルのソース全体を入れ換えねばならず、そうすると今度は 全部の基本コマンドと /etc 以下のファイルの入れ換えが必要になってきます。 あと数日で 4.3-RELEASE が出るので、新しくしたい場合にはそれを 待った方が良いです。急ぐのなら、4.3-BETA というのが ftp://current.jp.FreeBSD.org/pub/FreeBSD/snapshots/i386/4-LATEST/ にあります。マシンが 2 台あるのなら、片方にこのファイルをダウンロードして 目標とするマシンにインストールすることも可能です。これは かなり 4.3-RELEASE に近い物になるはずです。 しかしながら、初心者の方にこれを使うことはお勧めできません。もっと厄介な 問題を抱える可能性があります。 話を原点に戻しましょう。 サウンドを使うという場合には次のことをまず考慮した方が良いと思います。 (1) snd ドライバの使用。 (2) PnP が有効になっているか (3) ノートパソコンだと PCCARD 関係の設定。PCCARD のドライバが 使う irq とサウンド関係はバッティングしがちです。 (4) PnP を止めて、Legacy モードでマシンを起動するようにして、 Windows (同じマシンに入っていれば) の デバイスドライバのところをみて irq とか iomem などを メモして、それをカーネルの設定ファイルに指定して再構築します。 (3) までやってだめなら、FreeBSD-users-jp というメーリングリスト があるのでそれに参加して質問してみた方が私なんかを相手にするよりも良いかも しれません。メーリングリストの購読の案内は http://www.jp.freebsd.org/ml.html#FreeBSD-users-jp にあります。その際には、カーネルの設定ファイル全部と dmesg の出力 「全部」を添付してください。理想的なのは /boot/loader.conf に kernel_options="-v" というのをいれて再起動し dmesg をとってください。より詳細な情報が dmesg でみられます。みる人がみれば、普通の dmesg よりも アドバイスしやすいはずです。 どうも、サウンドの設定には問題がないようなので、 他のものと衝突しているような気がします。この場合に重要なのは ノートパソコンで PCCARD を使っているかどうかです。 あとは普通に質問を書けば良いかと思います。検索をしましたが、YMF740 の 報告は見当たらず、資料さえ全部添付すれば、 そのまま質問をしても怒られるようなことはないと思います。 それで駄目なら、ソースの問題ということになります。 ファイルの入れ換えは本当に最後の手段です。 |
>>1832 rosegarden > マシンが 2 台あるのなら、片方にこのファイルをダウンロードして > 目標とするマシンにインストールすることも可能です。これは > かなり 4.3-RELEASE に近い物になるはずです。 補足です。サイズは X 抜きで、200MB 弱です。通常のアナログ回線での ダウンロードだと 17 時間程みてください。専用線なら、30 分程度で すむ場合もあります。ISDN なら 14 時間程度ですむかも知れません。 インストールフロッピィのイメージだけダウンロードして ftp でインストール という手段もありますが、これはもう絶望的に時間がかかります。 やるのなら、別マシンにダウンロードしてから、そのマシンから ftp インストール というのが実際的です。 どちらにしても、初心者の方がするのはきつすぎます。 ともかく、入れ換えを検討する前に出来ることはあると思いますから、 考えてください。 |
>>1832 rosegarden 毎回の早い返答ありがとうございます。 >サウンドを使うという場合には次のことをまず考慮した方が良いと思います。 >(1) snd ドライバの使用。 「4.3-RELESEからsndドライバは使用されない」とおっしゃっていたので 将来性を考えて(?)pcmドライバのみ試してみました。 >(2) PnP が有効になっているか BIOSセットアップでプラグ&プレイが有効になっていることを確認しました。 >(3) ノートパソコンだと PCCARD 関係の設定。PCCARD のドライバが > 使う irq とサウンド関係はバッティングしがちです。 デスクトップで、またPCCARDもないのでこれは関係ないかも(?) >(4) PnP を止めて、Legacy モードでマシンを起動するようにして、 > Windows (同じマシンに入っていれば) の > デバイスドライバのところをみて irq とか iomem などを > メモして、それをカーネルの設定ファイルに指定して再構築します。 ハードウェア関係の設定(irq,iomemなど)は、自分の勉強不足のせいもあって よくわからないのが現状です。これから、ハード関係の勉強をして最低限の ことは覚えて行こうと思います。とりあえず、マシンも1台しかないので 雑誌などに4.3-RELEASEが添付されたときにOSを再インストールしてみようと 思います。 初心者の私に丁寧に解説して頂いてどうもありがとうございました。 |
>>1831 sakachan > 何らかのX11上のライブラリ、もしくはRGBA規格についてご存じのお方 > ご教授お願いいたします。 少なくとも X11R6.3 では RGBA には対応していないような気がします。 # 根拠は cd /usr/X11R6/include; grep -i rgba *,*/*。 gtk+、Qt、OpenGL あたりにそれらしき関数があったので それを使うか、 あるいはアルファ値を自前で計算することになると思います。 |
たまに出てきてアホな質問で住みません。 Perl で質問です。 (1) $path = '/usr/local/nantoka/us/us/file'; の /us/ を /jp/ に変えようと思ったら、 $path = s|/us/|/jp/|g; ではうまくいきません。 $path =~ s|/us/|/jp/| while $path =~ m|/us/|; ではうまくいったのですが、こんなんでいいんでしょうか。 (2) コマンドラインの mkdir -p で中間的なディレクトリをイッキに 作ってくれますが、Perl の mkdir では作ってくれません。 いまは `` でコマンドを呼んでいますが、これもしょうがないでしょうか。 |
>>1836 ふくし > $path = s|/us/|/jp/|g; > ではうまくいきません。 = じゃなくて =~ という話でしょうか。 > コマンドラインの mkdir -p で中間的なディレクトリをイッキに > 作ってくれますが、Perl の mkdir では作ってくれません。 perl5 の標準モジュール File::Path にある mkpath がご希望の ものでしょう。使い方は perldoc File::Path をご覧下さい。 |
>= じゃなくて =~ という話でしょうか。 あっすいません、これは掲示板の書き違いです。 正しく動かないスクリプトはちゃんと =~ と書いています。 ../us/us/.. の場合、先頭の /us/ を置換したら続きの us/ から 処理するので s///g ではいかない、という話のようです。 File::Path はありがとうございました! |
>>1838 ふくし > ../us/us/.. の場合、先頭の /us/ を置換したら続きの us/ から > 処理するので s///g ではいかない、という話のようです であれば、man perlre に \G … Match only where previous m//g left off (works only with /g) とありますので、 $path =~ s|\G/us/|/jp/|g; ではどうでしょうか。 >>1836 ふくし > $path =~ s|/us/|/jp/| while $path =~ m|/us/|; でもいいのですが、定番の書き方としては、 1 while ($path =~ s|/us/|/jp/|); というのがありますね。 |
>>1839 68user > $path =~ s|\G/us/|/jp/|g; > ではどうでしょうか。 ありゃ、全然ダメだ。というか、意味が全く逆ですね。 こういうときに使う perl の regexp ってなかったっけなぁ。 |
にゃるほど、1 while でがんばります。(ヘンな日本語) ありがとうございました。 もいっこズにのって質問。 stat や split をリストに代入して1番目と5番めと7番目を 使いたい、とかいうとき、ぼくは他のを $dummy というので 受けていますが、たまに -w で、1回しか使ってないけど 書き間違えてませんかと言われます。 これを言われないような /dev/nul みたいな変数ってないんでしょうか。 |
>>1834 taka > >(1) snd ドライバの使用。 > 「4.3-RELESEからsndドライバは使用されない」とおっしゃっていたので > 将来性を考えて(?)pcmドライバのみ試してみました。 ええ、出来ればその方が良いのですが、しかし、鳴らないものを使っても いまの taka さんの needs にはあわないだろうということで、 snd ドライバをお勧めしたのです。 しかし、最初は設定ファイルのレベルだと思ったので、 お節介をしたのですが、 まったく役に立たず、時間ばかりとってしまいました。 申し訳ありませんです。 |
>>1841 ふくし ($dummy, $dummy, $dummy, $num1, $num2) = (0,1,2,3,4,5); と、一度に複数回 $dummy を使えば used only once: possible typo の warning は抑止できます。あと、 ($num1, $num2, $num3) = (split(/ /))[1,5,7]; という手もありますが、可読性が低下しますね。 本質的には 「1番目と5番めと7番目を使いたい」という 使い方をせずに $foo = $o->getFoo; $bar = $o->getBar; $baz = $o->getBaz; などと書くように努めるべきだと思いますが、全ての場面で それができるわけでもなく、悩ましい限りです。 |
はじめまして。 いきなりですが、 >これを言われないような /dev/nul みたいな変数ってないんでしょうか。 (undef, undef, undef, $num1, $num2)=(0,1,2,3,4); こんなのでどうですか? |
>>1841 ふくし >>1843 68user >>1844 ふじ つぎのようにすれば文句をいわれませんでした。 #!/usr/bin/perl -w my ($login, $pass, $uid, $gid) = getpwnam('root'); print "$login:(password):$uid:$gid\n"; exit; my をとったものと、較べてください。 ちなみに動作環境は perl 5.00503 ないしは perl 5.6.0 です。 |
>>1845 rosegarden この他にも #!/usr/bin/perl -w use vars qw($login $pass $uid $gid); ($login, $pass, $uid, $gid) = getpwnam('root'); print "$login:(password):$uid:$gid\n"; exit; などと、use vars で宣言しておけば文句を言われないようです。 詳しくは、perldoc vars してみてください。 |
にゃるほど、 ふじさん> リスト要素にすれば undef を左辺に持っていけるんですね。 undef = 3; だと怒られますけどね。(当たり前) これは言いたいことを強烈に表現できているような気がします。 rosegarden さん> my や use vars を使った方法もいいですね。 この問題がよく出てくるのはファイルの stat を受けるときなんですが、 こういう意味のある変数のときは変数名をつけておいて使わない (そのうち使うかもしれないので) というのが便利なので、使わせていただきます。 みなさんどうもありがとうございました。勉強になるー |
いつも拝見しながら勉強させていただいています。 Perlを使ったソケット通信について質問があります。 HTTPSサーバに対してのソケット通信です。 http://X68000.startshop.co.jp/~68user/net/http-2.html にあるように、通常のソケット通信はできたのですが、 相手がHTTPSになるとヘッダの都合か、まったくうまくいきません。 たとえば、 自分のサーバ →POST→ 相手のCGIのあるサーバ(https) ↓ ブラウザ上にデータを表示 ← 相手が出力したデータを取得 このようなイメージです。 通常のHTTPでのソケット通信の場合、出力するヘッダは、 "POST /sample.cgi HTTP/1.0\r\n" "\r\n(空行)" "(POSTで送信するデータ群)" このような感じだと思うのですが、HTTPS相手だと まったく受け付けてくれません・・・。 これってSSLを相手が利用している以上、不可能なことなのでしょうか? 皆様の知識と知恵を貸してください、お願いします。 |
>>1848 d-jiro > このような感じだと思うのですが、HTTPS相手だと > まったく受け付けてくれません・・・。 としたいなら、自前で相手サーバのポート 443 (https の ポート番号) に繋げて、自前でデータを暗号化してから ソケットに送り、受け取ったデータは復号化する必要が あります。これを全部やるのはとてもとても面倒なので、 モジュールを使いましょう。 まず、OpenSSL (http://www.openssl.org) をインストール してください。で、 http://www.cpan.org/modules/by-module/Net/ から Crypt-SSLeay モジュールを入れて下さい。これは LWP を 使うことを前提としたもののようです。 あるいは、Crypt-SSLeay モジュールの代わりに Net::SSLeay というモジュールもあり、socket like に使えますが、現在は 保守されていないのかもしれません。 # http://www.cpan.org/modules/by-module/Net/Crypt-SSLeay-0.23.readme # http://www.cpan.org/modules/by-module/Net/Net_SSLeay.pm-1.05.readme なお、どちらも使ったことがないので、上に書いたことは 全て想像です。成功したか失敗したか結果を教えて下さい。 >>1844 ふじ そうか、undef っちゅうのがありましたね…。 >>1846 rosegarden これとは逆に、use vars すると warning が出なくなって 困ったことがあります (そのときは warning を出してほしかった)。 |
whoisのプログラムをプログラムソースを探しているのですが、 どちらにあるかご存知ありませんか? できればperlがいいのですが。 よろしくお願いいたします。 |
>>1850 whoisおしえてください > whoisのプログラムをプログラムソースを探しているのですが、 perl 版 http://ring.asahi-net.or.jp/pub/lang/perl/CPAN/authors/id/D/DH/DHUDES/ ついでに C言語版 (FreeBSD の whois。最近のは IPv6 化されています) http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/usr.bin/whois/whois.c whois プロトコル http://ring.asahi-net.or.jp/pub/doc/RFC/rfc1834.txt てなところでしょうか。 |
>>1849 68user >http://www.cpan.org/modules/by-module/Net/ >から Crypt-SSLeay モジュールを入れて下さい。これは LWP を >使うことを前提としたもののようです。 こちらの方法で試してみることにします。 おそらく数日後に結果が報告できると思います。 つまづきながらですが、また質問させていただくかもしれません。 ありがとうございました。 |
こんばんは、現在検索エンジンを作成中ですが、キーワード入力の所で いきなりつまずいています。 良く検索エンジン(goo,infoseek)等で検索文字を複数キーワード入力 し、キーワード間はスペースもしくは”|”パイプで区切る事をします。 単一キーワードは簡単に出来るのですが、このスペース区切りで 複数キーワードを引数にする方法がわかりませんが、宜しければお教え いただけないでしょうか? |
先日HTTPS接続のことで質問したものです。 HTTPS相手のPOSTでのCGI接続は、 Crypt-SSLeayモジュールを導入し、 LWPを使うことで解決しました。 部分的な引用でわかりにくいかもしれませんが、 $req = HTTP::Request->new( POST => "$url" ); $req->content_type('text/plain'); $req->content('$postdata'); とすることで、HTTPSだと意識することなく レスポンスをもらうことができました。 本当にありがとうございました。 |
>>1854 d-jiro > HTTPS相手のPOSTでのCGI接続は、Crypt-SSLeayモジュールを導入し、 > LWPを使うことで解決しました。 それはよかった。こちらの環境でも試してみましたが、 うまくいったようです。 >>1853 PHP > 一キーワードは簡単に出来るのですが、このスペース区切りで > 複数キーワードを引数にする方法がわかりません 複数キーワードに分割というのは $keyword = 'foo bar baz'; @keywords = split(/\s+/, $keyword); といったことですか? あるいは、複数のキーワードで検索するという ことですか? 後者ならば http://wakusei.cplaza.ne.jp/twn/wwwsrch.htm というのが参考になるかもしれません。 この CGI スクリプトは素直な書き方になっていますが、サーバへの 負荷はかなりのもので、実用には向きません。 最初のとっかかりとして、参考程度にとどめておくのがいいでしょう。 高速化のヒントは eval です。 |
http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?howtouse に ・環境はできるだけ詳しく ・マルチポスト禁止 ・回答をもらったら結果を報告する という注意点を追加しました。この場でいちいち注意したくはないので、 質問する前に是非ご一読下さい。 また、各メッセージの「No.1504 # 68user」などという表示の「#」を クリックすると、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1500-1600#1504 というリンクに飛ぶようにしました。 # 更新履歴: # http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi やはり設計が甘かったようで、この掲示板に美しく機能拡張するのは もう無理みたいです。スクラッチから書き直したいけど、きれいに 書ける自信がない…。 |
初めて書き込みをします。 早速ですが質問があります。 現在osをredhat6.2Jでsendmail8-9-3を使いメールサーバーを構築中です。 そこでcgiを使いメールを発信させると受信したメールのヘッダーのRecievedの部分の Fromがnobody@localhostとなってしまいます。。 こちらとしてはホストのアドレスを載せたいのですが・・・。 cgiは、 #! /usr/bin/perl $toname = 'xxx@aaa.bbb'; $fromname = 'yyy@ccc.ddd'; open(MAIL, "| /usr/lib/sendmail -t -i -f yyy") || die; print MAIL "from:$fromname\n"; print MAIL "to:$toname\n"; print MAIL "Subject: TEST\n"; print MAIL "Content-Type: text/plain;\n\n"; print MAIL "TEST\n"; close(MAIL); print "Content-type: text/html\n\n"; print <<END_OF_DATA; <HTML> <BODY>SendMail $err</BODY></HTML> END_OF_DATA exit; fromで指定したほうがもちろんサーバー側で,toで指定した方がクライアント側です。 sendmail.cfの編集にはsendmail.defを使っています。 はたしてcgiが悪いのかsendmailの設定がまずいのでしょうか? sendmail.defの設定がまずいなら一体どこを変えればいいのか。 ご教授の程をお願いいたします。 |
>>1857 ケンMK2 > Fromがnobody@localhostとなってしまいます。。 これってやっぱりまずいのかなぁ? Received に名前解決不可能な サーバ名が書いてあるメールって結構ありますよね。でも、それは ファイアウォールの中からだから許されるのかな。さすがに localhost はまずいかもしれない。 sendmail をまともに管理したことがないため正しい解決策はわかり ませんが、手元にある sendmail.def (sendmail-v8.def をいじった もの) には、 OFFICIAL_NAME='foo.bar.com' とあります。その他は特に設定していません。それを元に生成した /etc/sendmail.cf には Djfoo.bar.com と書いてあります。 Dj(サーバの FQDN) ですね。 あと、ユーザ名が nobody になるのもどうなんでしょうねぇ。 他の行に envelope from yyy などと -f で指定したユーザ名が 書いてあると思うので、それはそれでよいような気もするんですが…。 ちなみに手元の環境でも envelope from nobody となりますが、 僕がいいかげんに管理している sendmail なので、正しいか どうかはかなり怪しいです。 |
ケンさん> わーい。回答が書けるー わたしは、このようにしています。 $from = "kaori.iida\@morning.musume"; $to = "natsumi.abe\@morning.musume"; open MAIL, "|/usr/local/bin/nkf -j |/usr/sbin/sendmail -t -f $from" or die $!; print MAIL <<EOM; To: $to From:$from Subject: こんにちはー 元気だべさ。 EOM close MAIL; これで、次のようなメールが届きます。 To: natsumi.abe@morning.musume From: kaori.iida@morning.musume Subject: こんにちはー 元気だべさ。 ポイントは、-f パラメタで渡すのはエラーのときの戻りメールの宛て先で、 From: フィールドをメールの中に再度書かないといけないようです。 なお、スクリプトは EUC で、メールは JIS でないと文字化けするので、 nkf -j をかましています。 |
>>1858 68user >> Fromがnobody@localhostとなってしまいます。。 > これってやっぱりまずいのかなぁ? Received に名前解決不可能な > サーバ名が書いてあるメールって結構ありますよね。でも、それは > ファイアウォールの中からだから許されるのかな。さすがに > localhost はまずいかもしれない。 jp.FreeBSD.org の sendmail 君が付けた received も localhost に なっていました。少なくともあそこは変な設定になってはいない だろうということで、問題ないんじゃないでしょうか。 |
質問では有りませんが、気になったもので・・・ 自分の借りているレンタルサーバーのログに以下のような行がありました。 xxx.xxx.xxx.xxx - - [28/Mar/2001:20:00:52+0900] "GET http://www.intel.com/ HTTP/1.1" 200 1846 "-" "Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)" これってどう解釈すればいいのでしょう? 当然ですが該当するURLにファイルはありません。 試しに自己保有のLinux版Apacheに telnet でいろいろ試してみましたが、 ステータス 200 が出ることは有りませんでした。 単にサーバーのログ記録ミス(エラー?)なのでしょうか? こちらでも、こんなログが残る事は有りましたでしょうか? なんとなく気持ちが悪いので、判る方がいらっしゃれば教えてください。 |
>>1861 すな > 試しに自己保有のLinux版Apacheに telnet でいろいろ試してみましたが、 > ステータス 200 が出ることは有りませんでした。 FreeBSD 4.1-RELEASE + apache-1.3.12 で、 GET http://www.intel.com/ HTTP/1.0 でステータス 200 が出ました。ブラウザを普通に使っていれば、 PATH は必ず / から始まるはずですが、先頭が / でない PATH を 要求すると 200 が返るんですね。これって仕様かしら? |
>>1862 68user あら・・・ 環境が関係するようですねぇ。 Vine Linux 1.1CR Server version: Apache/1.3.3 (Unix) (Red Hat/Linux) な環境で、 $ telnet localhost 80 GET http://www.yahoo.co.jp/ HTTP/1.0 とすると、 HTTP/1.1 302 Found が返り… GET http://www.yahoo.co.jp/ HTTP/1.1 とすると、 400 Bad Request が返りました。 最初のログでは、HTTP/1.1 となっていたのに何故? アクセス元は、JPNICとINTERNICで調べられなかったので、新手の 攻撃かとも考えましたが違うようですね。 このログが出たApacheのバージョンは、Server: Apache/1.3.6 (Unix) でした… さらに上のサーバーで、 GET http://www.yahoo.co.jp HTTP/1.0 としたら、/ にした際のドキュメントが返って来ました。 もう一つおまけにWin版1.3.12のApacheでもステータス200で同じ動作でした。 #この動作は何??? う〜ん、すっきりしないなぁ… ともあれ試してもらってありがとうございました。 # サーバーの管理者に聞けば判るのかなぁ… |
>>1863 すな > GET http://www.yahoo.co.jp/ HTTP/1.1 > とすると、 400 Bad Request が返りました。 HTTP/1.1 では、Host ヘッダが必須ですが、これは大丈夫ですか? http://X68000.startshop.co.jp/~68user/net/http-4.html なお、HTTP/1.1 を使う場合は Host ヘッダを必ず付けなくてはいけません。 > / にした際のドキュメントが返って来ました。 うちもそうでした。 apache のバージョンに依存するようなので、本当のところを 調べたければ http://www.apache.org/websrc/viewcvs.cgi/ で 更新履歴を調べるのがよさげですが、時間がとれない…。 あるいは src/CHANGES に、変更理由が書いてあったりするかも しれません。 |
初めまして。 UNIXは、初めて触ってたのですが、本やHPで調べても答えがわからないので、質問させてください。 リモートで、クライアントのWin98にX for Windowsをインストールしましたが、文字化けを起こしました。FON形式に変換されています。 相手のソラリスにはOpen WindowとX Windowがインストールされてます。 クライアントがアクセスするとOpen Windowが立ち上がるよう、設定されていましたので、 /usr/openwin /bin/openwin を /usr/openwin /bin/Xに書き換えたんですが、状態は相変わらずです。 文がおかしいのでしょうか? よろしくお願いします。 |
はじめまして。突然ですが、ポート番号の対応表について質問させ てください。 こちらのサイトに「Windows なら C:\windows\services です。 ここに載っているプロトコルは「well-known port」と言えるでし ょう。」とあります。 しかし、C:\windows\servicesが見当たりません。なお私はwin NTを主に使用しています、バージョンによって異なるものなんで しょうか!? |
>>1864 68user >HTTP/1.1 では、Host ヘッダが必須ですが、これは大丈夫ですか? あたたた… 忘れていました。 で、host www.yahoo.co.jp:80 として再度やってみましたが同じ結果でした。 サーバー管理者へメールで問い合わせてみましたので解決したら報告します。 ・・・と書いている所へ管理者からメールが。 クライアントがURL欄に「http://www.intel.com/http://www.intel.com/」 と誤って記入すると、そのようなログが記録されます。 との返答。「えっ?」と思いながらやってみると、 GET http://www.yahoo.co.jp HTTP/1.1 host www.yahoo.co.jp:80 ログ内容 "GET http://www.yahoo.co.jp HTTP/1.1" 400 387 "-" "-" / からはじまらないパスを記録させる事は出来ましたが、やはり ステータス 400 でした・・・ う〜ん、眠れなくなりそうなんでこの件は諦めます(笑) >http://www.apache.org/websrc/viewcvs.cgi/ ↑これは知りませんでした。時間があるときにじっくり見てみます。 # いつもながら何かしら勉強させて頂いてますm(_ _)m >>1866 なべぞう WinNTの場合は、C:\WinNT\system32\drivers\etc\SERVICES です。このフォルダには、HOSTS や LMHOSTS も存在します。 スタートメニューの「検索」を最大限に活用すると便利ですよ。 |
/~68user/unix/pickup に早稲田大学からの連続アクセスがあり、OS の リソースを食い潰して open・fork などに失敗してサーバエラーが頻発 していました。load average が 20 近くまで上がってました。 とりあえず pickup は使用不可としましたので、あしからず。 同時に実行するプロセス数を制限する機能を追加したら使用可能に します。 >>1867 すな > host www.yahoo.co.jp:80 ではなく、host: www.yahoo.co.jp:80 です。`:' が足りません。 > クライアントがURL欄に「http://www.intel.com/http://www.intel.com/」 > と誤って記入すると、そのようなログが記録されます。 > との返答。「えっ?」と思いながらやってみると、 apache-1.3.12 では、ログに "GET /http://www.yahoo.co.jp HTTP/1.0" 404 と吐かれていました。その管理者の返答はほんとかなぁ? もし本当 ならば、apache にバグがあって、apache-1.3.12 では修正されて いるということですね。 > WinNTの場合は、C:\WinNT\system32\drivers\etc\SERVICES です。 なるほど。この文章をそのまま該当部分に追加してよいですか? >>1865 はてな > リモートで、クライアントのWin98にX for Windowsをインストール > しましたが、文字化けを起こしました。FON形式に変換されています。 文字化けの件はわかりませんが、これは X for Windows という商品名の Windows 用 X サーバですか? Windows 側で X サーバが起動しているなら、 Solaris 側で openwin や X を実行する必要はありません。なぜなら、 openwin や X は X サーバだからです。Solaris 側で実行すべきなのは kterm などの X クライアントです。 でなくて、なにかしらの仕組みがあって Solaris 側で X サーバを 実行すれば Windows 側で表示されるようなアプリケーションで あるなら失礼。そのようなアプリは さらに輪をかけてわかりません。 |
>>1868 68user >ではなく、host: www.yahoo.co.jp:80 です。`:' が足りません。 ステータス 400 はこれが原因でした。嘘書いてごめんなさい。m(_ _)m で、該当サーバーに GET http://www.yahoo.co.jp:80 HTTP/1.1 host: www.yahoo.co.jp:80 とした所、 "GET http://www.yahoo.co.jp:80 HTTP/1.1" 200 1934 "-" "-" のログが記録された事を確認しました。 この結果は、68userさんと同じくドキュメントルートが出力されました。 Apache1.3.3の方も同じ結果でした。 >>1862 68user >PATH は必ず / から始まるはずですが、先頭が / でない PATH を >要求すると 200 が返るんですね。これって仕様かしら? 動作からするとその様ですね。 >>1868 68user >その管理者の返答はほんとかなぁ? Apacheの出力結果を見ると管理者の言っている事は間違っているようです。 管理者といってもテクニカルサポートの「誰か」だし、適当にあしらわれ たのかも? >なるほど。この文章をそのまま該当部分に追加してよいですか? もし、サービスパックなどにより変更される場合は判りませんが、 少なくとも自分の環境では上記のフォルダに存在します。 WinNT 4.00.1381 SP5 ちなみに、このフォルダには以下のファイル群が含まれます。 HOSTS LMHOSTS NETWORKS PROTOCOL SERVICE drivers\etc というフォルダに格納するあたり、UNIXを意識しつつドライバーでは 無い内容を格納するのは、M$の苦しい所でしょうか…読みすぎ?;-p |
>>1869 すな > Apacheの出力結果を見ると管理者の言っている事は間違っているようです。 おそらくそのユーザは、外部利用可能なプロキシを探して そのサーバにアクセスしたんじゃないでしょうか。 例えばIEにプロキシとしてそのサーバのIPアドレスと ポート80をセットして、適当なサーバにアクセスしてみると リクエストラインはこういう感じ↓になるので、 GET http://www.yahoo.co.jp/ HTTP/1.0 そう言うログが残ることになると思います。 |
>>1869 すな はじめまして>hsjさん >おそらくそのユーザは、外部利用可能なプロキシを探して おぉ!なるほど。 IE5でプロキシ設定を施してアクセスした所、最初に疑問になったログ 結果と、ブラウザバージョン以外同じ結果となりました。 はぁ、なんかすっきりしました(笑) 片っ端からアクセスして調べているんでしょうか? ご苦労様なことです(^^; 自分はフレッツISDN接続なんですが、ここ3〜4ヶ月ルーターのログに 明らかにアタックと思われる攻撃が増えたので、過敏になっていました。 情報ありがとうございました。>hsjさん |
どうもレスが遅くなり申し訳御座いません。 >>1860 68user >jp.FreeBSD.org の sendmail 君が付けた received も localhost に >なっていました。少なくともあそこは変な設定になってはいない >だろうということで、問題ないんじゃないでしょうか。 へ〜そうなんですか・・・。 私もあれから試行錯誤しましたが、どうにもならず、結局気にしないこと にしました(笑)。 と言っても諦めるわけでなく、sendmail.cfを直接弄って何とかできるの では・・・と思いたちましたので、そちらの方法をしばらく模索していこ うと思います。 それではご迷惑をお掛けいたしました。 |
こんにちは、初めまして。 排他処理のことを読ませていただきまして、 フリーのCGIスクリプトに自分でシグナルに関する部分を追加しようと思いました。 ここでは $SIG{PIPE} = \&lock_off; というようにしておられますが、他のところでは、 $SIG{'PIPE'} = 'lock_off'; といった感じに書いていました。 これらは同じ意味なのでしょうか?(\&というのがよくわかりません) それから、こういったハンドラの定義は、ソース中のどの位置に書いても 同じなのでしょうか。最初の方に書いた方がいいのでしょうか? そして、ハンドラの中で変数の値を参照する場合、 その変数の初期化前にそのハンドラを書いて問題ないでしょうか? sub lock_off { if ($lockkey) { &unlock; } exit; } ・・・ $lockkey = 1; といった感じで。 Perlはまだよくわかっていないので、常識なことなのかもしれないですが、 よろしくご教授お願いします。 |
はじめまして。 CGIで環境変数を取得していると、「(compatible; MSIE 5.5; 〜〜」等で表示されるはずが、「好きな名前〜〜〜」でアクセスす人がまれにいるのです。これはどううことなのでしょうか? |
>CGIで環境変数を取得していると、「(compatible; MSIE 5.5; 〜〜」 >等で表示されるはずが、「好きな名前〜〜〜」でアクセスす人がまれにい >るのです。これはどううことなのでしょうか? クライアント(ブラウザ)がサーバに送るUser Agent 文字列を自由に設定できるソフトを使っているからではないでしょうか。 私の使っているフリーのタブブラウザ、「DonutR」でも、UserAgentを 自由に設定できます。 |
>>1873 dio > $SIG{PIPE} = \&lock_off; \& は関数へのリファレンスです。ちなみに $SIG{PIPE} = sub { unlink($lock_file); exit; } と等価です。 > $SIG{'PIPE'} = 'lock_off'; これだと、シグナルハンドラ lock_off の関数定義が同一ファイル 内にないといけません。別ファイルに sub lock_off を書いて、 それを require している場合は動かないということです。 関数へのリファレンスを使えば、どこで関数が定義されて いようと動きます。 これらの事柄はラクダ本に書いてありますので、もちお持ちで ないなら、購入されることをお薦めします。 > ハンドラの中で変数の値を参照する場合、その変数の初期化前に > そのハンドラを書いて問題ないでしょうか? これは、ハンドラ特有の問題ではなく、関数一般の話になります。 #!/usr/bin/perl &lock_off; sub lock_off { print $lockkey } $lockkey = 1; exit; と #!/usr/bin/perl $lockkey = 1; &lock_off; sub lock_off { print $lockkey } exit; では、前者はよろしくないことはわかりますね。 シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ シグナルハンドラが呼ばれるかわからないので、%SIG にセットする 前に必要な変数を全て設定しておきましょう。 |
>\& は関数へのリファレンスです。ちなみに >・・・・・・ >関数へのリファレンスを使えば、どこで関数が定義されて >いようと動きます。 なるほど そういう違いなのですか。 >シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ >シグナルハンドラが呼ばれるかわからないので、%SIG にセットする >前に必要な変数を全て設定しておきましょう。 わかりました。 どうもありがとうございます。 |
http://messages.yahoo.co.jp/bbs?.mm=CP&action=m&board=1835092&tid=echoa4ka4da4a4a4f&sid=1835092&mid=4 > ↓には、「ping への応答」と書いてます。 > http://www.nspl.co.jp/Solaris/Security/inetd.html 誤りです。ping に応答するのは ICMP reply です。TCP/UDP の echo は、 http://ring.ocn.ad.jp/pub/doc/RFC/rfc862.txt を参照のこと。 A very useful debugging and measurement tool is an echo service. ってことですね。人様が直接使うものです。 …と yahoo BBS に書こうと思ったけどできなかったので、どなたか 伝えて下さい。 |
>>1868 68user > とりあえず pickup は使用不可としましたので、あしからず。 > 同時に実行するプロセス数を制限する機能を追加したら使用可能にします。 使用可能になりました。ちゃんと制限が効いてるかどうかは 試してませんが。 >>1878 68user > …と yahoo BBS に書こうと思ったけどできなかったので、 > どなたか伝えて下さい。 どもです>dio さん (ですよね?) |
>どもです>dio さん (ですよね?) あ、はい このページ参考にさせてもらったり、 お世話になったので。 |
ご存知であれば 教えてください psコマンド(ps -l)を実行したときの C 項目の数値の意味 なんですけどマイナス値のプロセスがあったのですが どのような状態を意味するのでしょうか? |
教えていただきたいことがあります。 UNIXについてはほとんど初心者なのですが、あるとき急に管理をしろ! と言われてしまいました。はじめはなんのトラブルもなかったのですが、 何日か前に急に他のマシンから自マシンへtelnet接続ができなくなって しまいました。 原因はなんなのでしょう? 機種は SUN ULTRA60 Solaris2.6が入ってます。もちろん自マシンにログイン後 自マシンの他のユーザへのtelnetでのログインもできないのです。 お願いします。 |
はじめまして、YOUKOと申します。 C-ISAMを使ってAPLを作成したいのですが 初めてで右も左もわかりません。 どこか初心者用のHPありませんか? OS:Solaris7です。 |
>>1881 akihiro > psコマンド(ps -l)を実行したときの C 項目の数値の意味 > なんですけどマイナス値のプロセスがあったのですが OS は何ですか? FreeBSD には C という項目はないように 思えます。Solaris2.6 では「スケジューリングのための プロセッサ利用率、ただし obsolete」と man に書いて あったような気がしますが、それ以上の事はわかりません。 >>1882 クワ > 何日か前に急に他のマシンから自マシンへtelnet接続が > できなくなってしまいました。もちろん自マシンにログイン後 > 自マシンの他のユーザへのtelnetでのログインもできないのです。 それは、問題のマシンで % telnet localhost でログインできないということですね? 全体的に情報が不足しています。「できない」とはどういう意味ですか? 何かエラーメッセージが出ますか? 何秒か待たされたりしますか? login: プロンプトは出ますか? 一般的には inetd が telnet ポートを見張り、接続があると inetd が telnetd を実行し、telnetd が認証を行います。もし % netstat -a | grep telnet tcp4 0 0 *.telnet *.* LISTEN という出力が出ないならば、telnet ポートを監視するサーバがいない ということなので、inetd の問題です。/etc/inetd.conf をチェック しましょう。 他にも tcpwrapper が接続を弾いている、などの可能性もありますが、 そこらへんは /var/log/ の下のログを見ましょう。telnet した後、 ls -lt /var/log すれば、最終更新時刻順にファイル一覧が表示 されますので、最も最近に更新されたログファイルの中を見れば 何かメッセージが書いてあるかもしれません。 >>1883 YOUKO > C-ISAMを使ってAPLを作成したいのですが C-ISAM という物を知らないのですが、Informix の DB 関係の ライブラリか何かでしょうか。そういうものは Informix の出して いるマニュアルを読むのが早道かと思います。 # 同様に、個人が提供している Oracle の情報も少ないですね。 |
>> psコマンド(ps -l)を実行したときの C 項目の数値の意味 >> なんですけどマイナス値のプロセスがあったのですが >OS は何ですか? ..(略)..、それ以上の事はわかりません。 HP-UNIXです。私なりに調査していますので解りましたら 載せさせていただきます。 |
排他処理のページを見て質問なのですが、シグナル処理でCGIを終了 させたくない場合はどうすればよいのでしょうか? シグナルを無視みたいなことはできないんでしょうかね?? よろしくお願いします。 |