68user's page 掲示板

Prev< No. 1713〜1813> Next  [最新発言に戻る] [過去ログ一覧]
No. 1713 # nori 2001/02/12 (月) 14:03:06
FreeBSD3.2を使用していますが,ノートのPCカードのSCSIでCD−ROMを認識させたいです.カードはIODATAのPCSC−Fを使用しています.

No. 1714 # rosegarden 2001/02/12 (月) 15:54:25
>>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 はお勧めできません。

# でた当時は、何もかも、画期的で、安定していて、素晴らしかったんですが、
# 時間の推移というのは恐ろしいものです。

No. 1715 # 68user 2001/02/13 (火) 01:13:30
>>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

No. 1716 # Sakiika [E-mail] 2001/02/13 (火) 09:42:46
>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

No. 1717 # 雪ん子 2001/02/13 (火) 10:26:36
>>1709 68user
早速の回答、ありがとうございました。

>テスト環境ではリンク先に飛ぶことはできないのですね。
私のミスでした。リンクを貼るためのソースが欠落していました。
http://www.oitamirai.co.jp/cgi/search.html

>とりあえず検索時に必要なデータと、リンク先にあるデータを全て
>1つの CSV に突っ込んで、検索も表示も両方とも CGIで
検索結果後のリンク先の表示体系は基本的に全て同じとし、店舗名や
住所の所のみを変更するようにしたいと考えています。
そこで、検索結果に表示されるものからのリンク先へのリンクの
させ方と言うか表示をさせる時のCGI(引数?)がよく分かりません。
データベースから検索結果を表示させるまでは何とか自力で出来ま
したがその後の処理がうまく出来ません。
お力添えをよろしくお願いします。

No. 1718 # 68user 2001/02/13 (火) 14:43:04
>>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 から該当する
行を抽出し、それを出力する、というものです。

No. 1719 # hiroshi 2001/02/13 (火) 23:34:22
始めまして
ちょっと質問して良いでしょうか?
perlでtime()等が有りますが、これだとコンマ何秒の数値が取得できないですよね?
相対的な速度を計算したいんですが何かいいモジュールが有りましたら教えてください
検索エンジン等色々探して見たんですが見つかりませんでした

No. 1720 # 68user 2001/02/13 (火) 23:39:44
>>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 のサイトが引っかかりました。

No. 1721 # hiroshi 2001/02/14 (水) 00:13:32
あ、即レスすみません
ちょっとキーが思い当たらなかったですね
perl time 時間関数
なんてやってたんですけど
さっそく組み込んで見ます
それでは今後ともよろしくお願いします

No. 1722 # hiroshi 2001/02/14 (水) 00:22:28
($seconds, $microseconds) = gettimeofday;

この部分がそうみたいですね
今ちょっと試してます

No. 1723 # のり 2001/02/15 (木) 03:53:16
私は細かい字が見えないのでUNIXを使うときに困っています.
ウィンドウズは簡単にフォントの大きさを変えられますがUNIXでフォントの大きさを変える方法がわかりません.xterm,ktermにフォントのオプションがあるようですが,どのフォントが適しているかわかりません.
単に大きくなればよいです.全体的に大きくなる簡単な方法はないでしょうか?
NETSCAPE(3.x)は設定するところがありますが,私の場合アルファベットが小さくてなぜか真っ黒になっていて見えませんどうしてでしょうか?

No. 1724 # のり 2001/02/15 (木) 04:51:43
あと,Xウィンドウをインストールして立ち上げても~/に.XdefaultsなどのXの設定ファイルがありません.どこにあるのでしょうか?
NETSCAPEのアルファベットが小さいのは解消されました.しかし,リンク部分などが真っ黒に塗られているのは解消できません.

No. 1725 # のり 2001/02/15 (木) 07:38:06
xterm,ktermのフォントの大きさを変えることができました.
またわからないことがでてきたのですが,cshからtcshにログイン時に変えたいのですがなんかコマンドがあった気がします.忘れてしまいました.

No. 1726 # 雪ん子 2001/02/15 (木) 11:00:44
>>1718 68user
68userが言われるようにしたところ、受け側のCGIの QUERY_STRING で
渡った項目を取得することが出来ました。
あとは、受け取った項目をもとに検索表示する機能を作成したいと思います。
ありがとうございました。

No. 1727 # 68user 2001/02/17 (土) 15:48:00
>>1725 のり
> xterm,ktermのフォントの大きさを変えることができました.
自己解決したとしても、掲示板に書き込んだ以上は
何をどうしたらうまくいったかを簡単に書きましょう。

> cshからtcshにログイン時に変えたいのですがなんかコマンドが
> あった気がします.忘れてしまいました.
passwd -e や chsh など。OS によって違います。

No. 1728 # gixs 2001/02/19 (月) 21:06:43
>> xterm,ktermのフォントの大きさを変えることができました.
> 自己解決したとしても、掲示板に書き込んだ以上は
> 何をどうしたらうまくいったかを簡単に書きましょう。

のり氏ではないですが。
単にコントロールキー+右クリックに気づいただけでしょう。
# 論点が掲示版での礼儀作法なら、部外者なのでノーコメント。

No. 1729 # kuro [E-mail] 2001/02/22 (木) 08:12:29
始めまして。

earthlinkのFTPツールで問題が発生したため、やむなくホームページ用データのアップロードをDOSプロンプトで行うことにしましたが、mput の確認を
はずす方法がわからなくて困っていました。
Yahoo!で検索したところこちらのマニュアルを見る事ができたので
大変助かりました。どうもありがとうございました。

クロ

No. 1730 # purine 2001/02/24 (土) 07:20:28
はじめまして。
ソケット通信についての質問ですが、
クライアントとサーバの間の回線が何らかの障害によって切れた
場合、それを知る方法を教えてください。
会社ではポート情報を取得すればいいと言われたのですが

よろしくお願いします

No. 1731 # CZ 2001/02/25 (日) 23:54:56
68userさん,他の皆さん,こんばんは。

さて,ローカルでメーリングリストの過去ログを閲覧するための便利なツールはないでしょうか。

今はメーラ(Becky)に取り込むことを考えていて,展開・取込スクリプトも完成したのですが,まだ本番の作業に移っていません。

この方式での閲覧には難点が幾つかあって,
(1) 1,000メール程度ごとに分割しなければ表示が遅くなるので,スレッドがつながらないことがままある。
(2) Plain Textで保管されるのでディスク容量が圧迫される。
(3) メモリが少ないことも影響してか,はたまたWindows上でのtar操作だからか,ログアーカイブの展開・取込に異常に時間がかかる。(これが本番の作業に至っていない理由。)

理想を言えば,あらかじめインデックスを作成しておき,閲覧分だけ逐次展開するツールがあれば便利なのですが,あるのでしょうか。Windows使いなので,Windows(含DOSプロンプト)か,cygwinか,perl・ruby等で動作することが条件です。ローカルhttpサーバを立てることも可能です。

情報調査力の足りない私にどんなことでもご教示いただけるなら幸いです。

No. 1732 # すな 2001/02/26 (月) 16:41:26
お世話になります。
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分に記録されているようです。
ぜひご意見をお聞かせください。

No. 1733 # 68user 2001/02/26 (月) 22:11:34
>>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
ですね。

No. 1734 # すな 2001/02/27 (火) 01:32:04
> とりあえず date で秒単位まで記録して
確かにそのとおりですね。

で、早速そのようにして観察した所1時間もしないうちに、やはり前
後1秒程度の誤差が確認されました。

+1秒の時はいいのですが、-1秒の時は「xx:59:59」などとなってしま
いますので、負荷が高い時を考えて5秒程度 sleep をかます事で対
処してみます。

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

cronは結構誤差があるものなのですね。
今後cronを使うときの参考になりました。

関係ない話題ですが 午前0時と正午の表記は 00:00pm という表
記が正しいと思っていましたが、uptimeの出力では、12:00am と
12:00pm と表示されるのですね。

No. 1735 # CZ 2001/02/27 (火) 01:43:14
>>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だけが正常に表示されませんでした。ご報告まで。

No. 1736 # SASA [E-mail] 2001/02/27 (火) 15:27:52
テープにbackupしたデータを、復元させたいのですが
コマンドの打ち方がわかりません。
教えて下さい。
UNIX若葉マークです。

No. 1737 # purine 2001/02/27 (火) 16:12:57
68userさんお返事ありがとうございます。参考になりました。

No. 1738 # purine 2001/02/27 (火) 16:52:22
ソケット通信でマルチクライアントサーバを作っているのですが
お手本にできるソースってどこかにありませんか?
プログラミング初心者ですが、要求がかなり厳しいので困ってます。

No. 1739 # 68user 2001/02/27 (火) 18:13:02
>>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 は何でしょうか?

No. 1740 # purine 2001/02/27 (火) 18:55:24
お世話になっておりますpurineです。
C言語で書かれたソケット通信によるマルチクライアントサーバの
お手本のソースを見たいのでご存知でしたら教えていただけませんか

お手本だけじゃなくC言語のソケット通信に使う関数について書かれたページなどもありましたらよろしくお願いします

No. 1741 # 通りすがりです。 2001/02/27 (火) 19:06:34
purineさん>
職場の同僚がマルチクライアントサーバを作る時に調べていてみつけた便利そうなサイトへのリンク集だそうです。

http://www.geocities.co.jp/SiliconValley-Oakland/6682/link/LinksForWork_Edu01.html

この同僚は検索サイトで探し出したそうですから
あなたももっと探してみてはいかがでしょう。

No. 1742 # 通りすがりです。 2001/02/27 (火) 19:37:13
追加です。
こちらのサイトへのリンクもあるそうです。

http://www.geocities.co.jp/SiliconValley-Oakland/6682/link_work.html

No. 1743 # なお [E-mail] 2001/02/27 (火) 23:19:38
こんばんわ、初めまして。
以前から、UNIXのページなど凄く参考にさせてもらってます。ども。。

いきなり、質問なのですが。
あやまって/usr/share/locale/ja_JP.EUCを削除してしまいました。
これを元にもどしたいのですが、どんな方法があるでしょうか。
すみませんが、よろしくお願いします。
FreeBSD 4.2-RELEASEです。

No. 1744 # 68user 2001/02/28 (水) 00:10:14
>>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/
てなのができたようですね。

No. 1745 # なお [E-mail] 2001/02/28 (水) 00:20:12
過去ログみたら、マルチポストについての指摘が(^^;

すみません、マルチポストです。
www.linux.co.jp

FreeBSDで質問出来るような場所が見つからず
linux板に書き込んでしまいましたが、
68userさんのサイトを思い出し、投稿させて頂きました。
linux.co.jpのほうはレスしてもうらうと悪いので
解決したと書いておきましたが、実はまだです。(^^;
反省と謝罪までに、、、、でわでわ、すみません。
下記のほうよろしくお願いします。

No. 1746 # なお [E-mail] 2001/02/28 (水) 00:43:24
>1744 68userさん
ありがとうございます。
srcからうまくいきました。

locale一つでも、色々方法があるみたいですね、、
まだ知識が追いついてないですが、書いてくださった他の方法も試してみます。
でわ、解答ありがとうございました。

No. 1747 # rosegarden 2001/02/28 (水) 01:30:10
>>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 が
途中でこけるのが二三日続いたことがありました。それで覚えてます。

No. 1748 # CZ 2001/02/28 (水) 01:51:33
>>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で動かそうとしたらかなり労力が要りそうで,ちょっと躊躇しています。
# そのうちに常時接続になることだし,そろそろ家庭内サーバを立てるか。
## でも騒音と夏の空調とセキュリティの確保が大変そう。
### ひょっとして常時接続になればローカルで閲覧する意味もなくなるか?

独り言を書き連ねてしまいました。

ではでは,これからもよろしくお願いします。

No. 1749 # なお [E-mail] 2001/02/28 (水) 02:31:58
>>1725のりさん
解決したようですが、ちょっとXのリソースについて
私も今勉強中なのですが、、editresコマンドなどあるみたいです。

http://www.linux.or.jp/JF/JFdocs/XWindow-User-HOWTO-8.html
http://www.ainet.or.jp/~inoue/athena/index.html

No. 1750 # 68user 2001/02/28 (水) 04:04:28
>>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/> という書き方をすると
          &lt;http://blade.nagaokaut.ac.jp/&gt;
    → <A HREF="&lt;http://blade.nagaokaut.ac.jp/&gt;">
と置換されていましたが、さきほど直しました。こういうバグを
見つけるたびに、自分の想像力のなさを思いしらされますね。

>>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

No. 1751 # 68user 2001/02/28 (水) 06:56:57
おっと書き忘れ。

>>1747 rosegarden
> -current の make world の際のログがありましたけど、
> 単純にコピーでいいようですね。
なるほど。手動でやる場合は、
    ftp://current.jp.FreeBSD.org/pub/FreeBSD/snapshots/i386/log/
を見ればよかったわけですね。

No. 1752 # CZ 2001/02/28 (水) 11:29:33
>>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/> という書き方をすると
> &lt;http://blade.nagaokaut.ac.jp/&gt;
> → <A HREF="&lt;http://blade.nagaokaut.ac.jp/&gt;">
> と置換されていましたが、さきほど直しました。こういうバグを
> 見つけるたびに、自分の想像力のなさを思いしらされますね。

私の自作BBSでも同じ問題が発生していることを以前から認識していました。68userさんの掲示板ソースも参考にした覚えがあるので,ひょっとするとURL置換処理をコピーしていたのかも知れません。そのうち暇があれば直しておきます。

# 睡眠は大事です。かくいう私も最近……。

No. 1753 # 金床 [E-mail] 2001/02/28 (水) 14:36:42
お邪魔致します。このサイトの情報は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の方がわずかに速く通
信が可能という事はあるのでしょうか?いきなりで申し訳ありませんが、お答え頂ければ
幸いです。

No. 1754 # 68user 2001/02/28 (水) 15:37:35
>>1752 CZ
> そうですか? スレッド表示など特に秀逸だと思ったのですが。
あ、アイコンがわかりにくいので拒否反応を示しただけですから、
聞き流してくださいまし。

> Internet Explorerやw3m等から見るとソースがこんな具合に
> なっています。
IE5.5 で確認しました。原因究明はウチに帰って元データを
見てからにします。

>>1753 金床
> FTPはHTTPよりわずかに速いため
FTP はコントロールコネクションとデータコネクションがありますが、
HTTP はコネクションは1本しか張らないので、FTP の方がわずかに
速い *かも* しれません。でも、誤差の範囲内だと思います。

なので、(この部分を見る限りでは) 不適切な解説だと僕は思います。

> IPパケットレベルでHTTPとFTPのパケットが区別され、FTPの方が
> わずかに速く通信が可能という事はあるのでしょうか?
アプリケーションゲートウェイ (delegate とか) で帯域制限でも
しない限り ありえないです。金床さんが書かれている考え方は
正しいです。

No. 1755 # 金床 [E-mail] 2001/02/28 (水) 16:04:36
お答え頂きありがとうございます。

>FTP はコントロールコネクションとデータコネクションがありますが、
>HTTP はコネクションは1本しか張らないので、FTP の方がわずかに
>速い *かも* しれません。でも、誤差の範囲内だと思います。

これは、FTPのデータコネクションでは目的のデータ(ファイルやファイルリストなど)しかネットワーク上を
転送されないのに対し、HTTPでは最初にHTTPリクエストがネットワーク上を通るので、その分という事でしょうか。

それとも、データコネクションでのデータ受信(送信)中も、コントロールコネクションが何らかの役割を果たして
いるという意味でしょうか。つまり、転送されるデータが巨大になればなるほどFTPとHTTPで差がでてくるような
現象が存在するのでしょうか?

最初に書くべきでしたが、私がここで対象にしている「FTPとHTTPの転送速度の差」は、
数Kb〜数百Kb程度の小さなファイルでのやりとりではなく、巨大なデータ(少なくとも10Mb程度)
で現れる(かもしれない)差の事です。

>アプリケーションゲートウェイ (delegate とか) で帯域制限でも
>しない限り ありえないです。
なるほど、やはりそうですよね。少し安心しました。

No. 1756 # すな 2001/02/28 (水) 16:11:15
# おぉすごい書き込み…うちとは大違い(笑)

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はデーターコネクションとコントロールコネクションが
独立している為に僅かに早いのかな?なんて勝手に想像しています。
# 無駄な反応してすいません。

No. 1757 # すな 2001/02/28 (水) 16:12:18
あら?いろいろと書いているうちに、前後してしまった…(^^;

No. 1758 # すな 2001/02/28 (水) 16:23:50
金床>
私も詳細は判りません(手抜き)ですが、調べるなら参考まで。
日本語RFC(FTP)
http://hp.vector.co.jp/authors/VA002682/rfc959j.htm

No. 1759 # 68user 2001/02/28 (水) 16:24:40
>>1755 金床
ああ、逆でした。

FTP はコネクションを 2本張るので、3way handshake が2回行われ、
その分 HTTP の方がわずかに速い *かも* しれません。

あと、FTP だと USER/PASS/TYPE/PORT などのコマンドを発行した
後はレスポンスを待たなければいけませんが、HTTP だと最初に
リクエストを送って、あとは受け取るだけなので、そういう点でも
HTTP の方が速い *かも* しれません。

それらの差が *仮に* あったとして、なおかつ数十 KB 程度の
小さいデータの転送時には *仮に* 体感できたとしても、
> 巨大なデータ(少なくとも10Mb程度)で現れる(かも
> しれない)差の事です。
データの転送自体の仕組みは全く変わらないため、転送データの
サイズが大きくなればなるほど、差は目立たなくなるでしょう。

No. 1760 # 金床 [E-mail] 2001/02/28 (水) 16:55:18
>データの転送自体の仕組みは全く変わらないため、転送データの
>サイズが大きくなればなるほど、差は目立たなくなるでしょう。
納得行く答えを頂きました。ありがとうございます。

>すなさん
RFC情報、どうもありがとうございます。

No. 1761 # 68user 2001/02/28 (水) 16:55:20
>>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 はどこまででも
増やすことができます。

No. 1762 # すな 2001/02/28 (水) 17:40:32
68user>となると、Vine の cron が腐ってるということになりませんかね。
なるほど、と言う事はcronの実装も結構ディストリビューションで違うのですね。
というか、さすがSolarisと言うべきなのか…
# マシンの内臓タイマーの精度とかも関係有るのかな?
# このマシンはかなり時間が狂うので…(1日数秒はあたりまえ)

>http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1119
なるほど、これも大変勉強になりました。
最初は単純にシステム負荷を100で割った(理由不明)数値なのかと思っていました。

Windows等のシステム負荷表示とはまったく違って、100%以上の負荷まで表示
している訳ですね。(待ちプロセスを負荷と言うかは別として)
説明も大変判りやすかったです。

No. 1763 # CZ 2001/02/28 (水) 22:59:34
>>1750 68userさん

> あと、この BBS で <http://blade.nagaokaut.ac.jp/> という書き方をすると
> &lt;http://blade.nagaokaut.ac.jp/&gt;
> → <A HREF="&lt;http://blade.nagaokaut.ac.jp/&gt;">
> と置換されていましたが、さきほど直しました。

自作BBSを見ると正規表現部分*だけ*はほぼ同じでした。やはりここの掲示板のソースを引き写していたようです。(perlではなくrubyですが。)で,直していて気が付いたことですが,

s!<A HREF="(.*?)&gt;">(.*?)&lt;</A>!<A HREF="$1">$2</A>&lt;!g;

も加えておいた方がよいのでは。

No. 1764 # CZ 2001/02/28 (水) 23:02:34
<<1763
ん? 訂正。

s!<A HREF="(.*?)&gt;">(.*?)&gt;</A>!<A HREF="$1">&gt;$2</A>&gt;!g;
s!<A HREF="(.*?)&lt;">(.*?)&lt;</A>!<A HREF="$1">&lt;$2</A>&lt;!g;

こうですね。

No. 1765 # CZ 2001/02/28 (水) 23:05:27
<<1764

ん?? 何やってるんだろう。

s!<A HREF="(.*?)&gt;">(.*?)&gt;</A>!<A HREF="$1">$2</A>&gt;!g;
s!<A HREF="(.*?)&lt;">(.*?)&lt;</A>!<A HREF="$1">$2</A>&lt;!g;

これでいいんですね。
<<1762 はタイプミス
<<1763 は勘違いでした。

板汚しですみません。

No. 1766 # mm 2001/02/28 (水) 23:29:52
あっ、ウチも同じバグがある(^^;
でも、書き戻しですね…、ちょっとテストさせてくださいm(_o_)m
<http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/>

No. 1767 # 68user 2001/03/01 (木) 01:02:25
おー、これってきっちりやると結構面倒かも。で、30分あれこれ
やった結果…これでどだ!
    $_='hoge<http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/>fuga';
    
    s/&/&amp;/g;
    s/\"/&quot;/g;
    s/</&lt;/g;
    s/>/&gt;/g;
    $http_pattern = '((http|https)://[a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+)';
    $out = '';
    while (1){
            if ( ! s!(.*?)($http_pattern)!! ){
                    $out .= $_;
                    last;
            }
            $out .= $1;
            $buf = $2;
            $buf =~ s/((&lt;|&gt;|&quot;).*)//;
            $rest = $1;
            $buf =~ s!$http_pattern!<A HREF="$1">$1</A>!;
            $out .= $buf;
            $_ = $rest . $_;
    }
    
    print "$out\n";
無限ループが恐いので (^^;、まだ wwwboard.cgi には組み込んでません。

No. 1768 # mm 2001/03/01 (木) 02:34:18
無茶苦茶効率悪そうだし、未定義変数使用の警告が出るけど…(^^;

    $_='hoge<http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/>fuga';
    $http_pattern = '(http|https)(://)(([a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+?)(&gt;|&lt;|&quot;)|([a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+))';
    s/&/&amp;/g;
    s/\"/&quot;/g;
    s/</&lt;/g;
    s/>/&gt;/g;
    s!$http_pattern!<A HREF="$1$2$4$6">$1$2$4$6</A>$5!g;

No. 1769 # CZ 2001/03/01 (木) 07:43:42
>>1767 68userさん
おはようございます。

> おー、これってきっちりやると結構面倒かも。

こんなに奥が深いものとは想像もつきませんでした。以前これに着手しかけて断念した覚えはあったのですが,なぜ断念したかは覚えていません。

> 無限ループが恐いので (^^;、まだ wwwboard.cgi には組み込んでません。

早速ruby文に変換して実働掲示板に使っています。無限ループになっても利用者が二人しかいないサーバだし,HTTPならすぐ切れそうだということで,心配はしていません。

そんなわけで,いつもありがとうございます。これからもお世話になります。

No. 1770 # 68user 2001/03/01 (木) 12:11:10
こんなのも。
    $_='hoge<http://x68000.startshop.co.jp/~68user/><http://www2s.biglobe.ne.jp/~cru/library/>fuga';
    $http_pattern = '((http|https)://[a-zA-Z0-9\.\/\~\:\?\#\@\&\-\+\=;%_]+)';
    s/&/&amp;/g;
    s/\"/&quot;/g;
    s/</&lt;/g;
    s/>/&gt;/g;
    @items = split(/(&lt;|&gt;|&quot;)/, $_);
    foreach (@items){
            s|$http_pattern|<A HREF="$1">$1</A>|g;
    }
    $_ = join('', @items);
    print "$_\n";
アルゴリズム・正規表現が複雑にならないという点で、これが
一番よさげかなぁ。でも動作チェックと速度計測をしなくては。

もっとよいのを思いついた方は教えてください。

No. 1771 # 68user 2001/03/01 (木) 23:48:26
>>1770 68user
commit しました。とか言ってみたり。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi

No. 1772 # mm 2001/03/02 (金) 00:14:33
>>1770 68userさん
いいですねぇ。
これ頂きます。perl4でも動くし(^^;

No. 1773 # purine 2001/03/02 (金) 11:42:08
質問したいことがあります。それはあるプログラムでPIDを変数として
持っているときに、その変数のPIDのプロセスを殺す方法があれば教えて欲しいのですが。
よろしくお願いします

No. 1774 # 68user 2001/03/02 (金) 12:35:01
>>1773 purine
必ず OS 名や使用している言語を書いてください。

kill コマンドか、システムコール kill を使います。
    http://X68000.startshop.co.jp/~68user/unix/pickup?keyword=kill&target=command&partial=on

No. 1775 # 68user 2001/03/03 (土) 20:09:31
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 コマンド呼ぶだけのスクリプト見てもおもしろくないでしょ)、例えば
ドメイン名検索とかならもっと便利なサイトがあるので、この掲示板で誰からも
反応がなければ近日中に消すつもりです。

No. 1776 # 68user 2001/03/03 (土) 20:48:21
>>1775 68user
>  open(IN, "-|") or exec($httptalker, '-get', $url);
> と修正しました。この場合は perl が直接 fopen(3) を呼ぶため
訂正。perl が直接 pipe(2)、fork(2)、exec(2) するため、でした。

No. 1777 # Netboy [E-mail] 2001/03/03 (土) 21:02:28
CGIの小部屋は消さないで欲しいです.
メンテ終了ページは倉庫ディレクトリなどに
移設するのみにしていただけると嬉しいです.

簡単な内容のものでも,知らない人に説明するとき
サンプル的に便利に利用させていただいております.

No. 1778 # 68user 2001/03/03 (土) 21:36:08
>>1777 Netboy
> CGIの小部屋は消さないで欲しいです.
了解いたしました。と決まれば、見られても恥ずかしくない
程度に brush up せねば。

No. 1779 # ふくし [E-mail] 2001/03/04 (日) 01:16:31
いつも質問ばかりですいませんのふくしです。
Perl で use strict 'vars'; とすると、変数を使うときは
パッケージを明示するか、my 宣言しないと怒られますが、
$a、$b という変数は怒られないで、%main:: シンボルテーブルに
追加されますね。$aa だとダメ。$c もダメ。なぜでしょう?
恐れ入りますがご存知の方はご教示ください。

No. 1780 # 68user 2001/03/04 (日) 01:24:36
>>1779 ふくし
想像でモノを言いますが、sort でセットされるのが $a と
$b だから特別扱いされているんじゃないでしょうか。
# Ex. sort { $a cmp $b }

No. 1781 # ふくし 2001/03/04 (日) 02:22:08
ああ〜そかそかそかそか。使いますねえ sort で $a と $b。
すっきりしました。いつもありがとうございます!(^^)

No. 1782 # Tel 2001/03/05 (月) 16:05:53
はじめまして。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の知識がない為なのか、書籍の選びかたが悪い為なのか、難しくて具体的な記述方法がわからないためにこちらにきてみました。
どうかご指導願います。よろしくおねがいします。

No. 1783 # ゆう 2001/03/05 (月) 19:14:45
UNIXでパーミッションを変更しようとしたのですが
以下のメッセージで変更できません。どうしてですか?
502 SITE command not implemented.

No. 1784 # rosegarden 2001/03/05 (月) 19:26:37
>>1783 ゆう
> 以下のメッセージで変更できません。どうしてですか?
> 502 SITE command not implemented.
サーバ側でサポートしていないからでしょう。
SITE コマンドと言うのは標準的でないコマンドのことです。
だから、理屈の上では
ftp>SITE SHUTDOWN NOW
なんて出来ても別に不思議ではないと思います。

それでは身も蓋もないので、ためしに、
ftp>SITE CHMOD 600
とか win98 の ftp.exe だと
ftp>literal SITE CHMOD 600
(だったかな?) とかしてみて駄目だったら、駄目なんだと思います。

どっちにしても、管理者に聞いてみないと、はっきりしたことは
分からないと思います。

No. 1785 # rosegarden 2001/03/05 (月) 19:40:28
>>1782 Tel
書き込み拝見しましたが、どうも共有メモリ云々でつまずいて
おられるのではなく、単純に C 言語で目的を
達成するプログラムを書く方法について悩まれているように思えます。

# もしも違いましたら、ごめんなさい。
# 何をどうされたいのかが、不明で推測で書いていますので、
# 御理解ください。

shared memory を使ったプログラミングは経験が無いんですが、
ちょっと本を見たら、初期化やセットアップは別として
メモリへのアクセスは普通に配列や malloc したバッファへの
アクセスと変わらないようでした。

失礼を承知で書きますが、共有メモリを使わないで、固定したファイルに
flag と data を書き込んで、プログラム A と プログラム B で
やりとりをするようなものは、お書きになられますか?
もしそれが可能なら、似たような手順で出来そうです。

# もしも、既にそんなことは可能であると言うのでしたら、
# 失礼お許しください。

ちなみに、私の場合には
「UNIX ネットワークプログラミング」という本を参考にしました。
トッパンからでている本です。ちょっと眺めた程度だと、
共有メモリの部分は結構丁寧に書いてあって、
サーバとクライアントのサンプルもありました。
ざっと見たかんじでは、分かりにくいと言う感じは無かったですね。

# これって、ここで紹介されている本の旧版なのでしょうか?
# 今は二分冊になっているのですね。私のには IPv6 のことは
# 書いてないです。

No. 1786 # rosegarden 2001/03/05 (月) 20:04:25
ちょっと、すごい初歩的な質問なのですが、
一般に 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.
# なんていうメッセージもでました。
# こういうことがしょっちゅう起こると、もう笑いしかでませんね。

No. 1787 # 68user 2001/03/06 (火) 02:16:13
>>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 まわりなんてとても僕の手に負えないので、役に立たない
# 返事しかできないです。ごめんなさい。

No. 1788 # ミング [E-mail] 2001/03/06 (火) 14:13:40
今日は。

本来のLOGIN パスワードを忘れてしまった場合はOSからインストールし直すしかないのでしょうか?

No. 1789 # 68user 2001/03/06 (火) 15:40:07
>>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
なら僕にはわかりません。

No. 1790 # rosegarden 2001/03/06 (火) 16:02:59
>>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 単位に変換してないので
変な結果になるようです。
ちょっとまだ断定的なことは言えないのですが、
とりあえず、バグリポートしておきました。

No. 1791 # ミング [E-mail] 2001/03/06 (火) 17:13:04
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からインストールし直すしかないのでしょうか?

No. 1792 # rosegarden 2001/03/06 (火) 17:44:55
>>1791 ミング
>OSはSolaris7です。
Solaris 7 なら
シングルユーザモードで起動してから、/etc/shadow を
編集して OK です。
インストール CD からでも出来ますが、
シングルユーザモードでの起動の方が簡単ですね。
忘れたけど、恐らく、そのままでファイルの書き換えが
出来たと思います。
FreeBSD だと mount -u / しないと書き込めませんが。

#vi は使えますよね?

No. 1793 # rosegarden 2001/03/06 (火) 17:50:59
>>1792 rosegarden
あ、
Solaris はシングルユーザモードで起動する時でも
パスワードを聞いて来ることを思い出しました。
やっぱりインストール CD から起動して、ファイルシステムを
マウントして書き換えるより無いですね。

No. 1794 # ミング [E-mail] 2001/03/07 (水) 12:29:32
>あ、
>Solaris はシングルユーザモードで起動する時でも
>パスワードを聞いて来ることを思い出しました。
>やっぱりインストール CD から起動して、ファイルシステムを
>マウントして書き換えるより無いですね

ありがとうございます。
ところでもう一つ質問があります。
directoryでls −alすると6行目に各ファイルやdirectoryの容量が表示されますが、そこによく512という数字が出てきます。そのdirectory下のファイルの容量が512以上なので512は容量ではないのかなと思ったのですが、なにか特別な意味があるのでしょうか?

よろしくお願いします。

No. 1795 # rosegarden 2001/03/07 (水) 14:43:43
>>1794 ミング
> そのdirectory下のファイルの容量が512以上な
> ので512は容量ではないのかなと思ったのですが、
ディレクトリもファイルですから、ディレクトリ自体のサイズです。
ディレクトリに書いてあるのは大雑把に言って、ファイル名と
i ノード番号です。うーん、他にも書いてあるかも知れない。
要するにファイルのリストです。最初はだいたい 512 バイトで
ファイルが沢山になった場合には適当に 512 バイト単位で大きくなって
行きます。手元の FreeBSD だとエディタでディレクトリを見ることも
できて、次のような感じです。
% ls IPv6
d200006c.html daytime6.pl ipv6_1.html
d6.c ipv6.html ipv6_2.html
% cat IPv6 | hexdump -C
00000000 84 5e 00 00 0c 00 04 01 2e 00 00 00 80 26 03 00 |.^...........&..|
00000010 0c 00 04 02 2e 2e 00 00 97 27 03 00 14 00 08 09 |.........'......|
00000020 69 70 76 36 2e 68 74 6d 6c 00 1e c0 a0 27 03 00 |ipv6.html....'..|
00000030 14 00 08 0b 69 70 76 36 5f 31 2e 68 74 6d 6c 00 |....ipv6_1.html.|
00000040 a1 27 03 00 14 00 08 0b 69 70 76 36 5f 32 2e 68 |'......ipv6_2.h|&......|そのディレクトリにあるファイルの名前だけ保持できれば
いいので、ファイルの数が少なければ、512 バイトということが
ありえます。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 1796 # rosegarden 2001/03/07 (水) 14:45:38
>>1795 rosegarden
hexdump のところが表示が変になってしまいましたね。
ソースの方を見てもらえれば分かりやすいかも。

No. 1797 # rosegarden 2001/03/07 (水) 16:41:46
>>1795 rosegarden
> ディレクトリに書いてあるのは大雑把に言って、ファイル名と
> i ノード番号です。うーん、他にも書いてあるかも知れない。
ちょっと不正確なので、正しい説明をします。
FreeBSD な人は /usr/src/sys/ufs/ufs/{ufs_vnops.c,ufs_lookup.c,dir.h}
あたりを見ると分かります。
ディレクトリは可変長レコードのデータベースみたいになっていて、
*BSD の ufs の場合一つのデータは

(1) i node 番号 (4bytes)
(2) レコード自体の長さ (2bytes)
(3) ファイルのタイプ (1bytes)
(4) ファイル名の長さ (1bytes)
(5) ファイル名(ただし 4 bytes 単位で切り上げ)

となっています。これは dir.h の direct 構造体で定義されています。

struct direct {
                u_int32_t d_ino; /* inode number of entry */
                u_int16_t d_reclen; /* length of this record */
                u_int8_t d_type; /* file type, see below */
                u_int8_t d_namlen; /* length of string in d_name */
                char d_name[MAXNAMLEN + 1];/* name with length <= MAXNAMLEN */
};

さっきの例で見ると
>>1795 rosegarden
00000000 84 5e 00 00 0c 00 04 01 2e 00 00 00

というのがありますが、

84 5e 00 00 : i node 番号 0x5e84 なので 24196
0c 00 : レコードの長さ 12 バイト
04: ファイルのタイプ 04 なのでディレクトリ
01: ファイル名の長さ 1 バイト
2e 00 00 00 : 2e がファイル名 "." あとはつめもの

つまり、これは

% ls -ai IPv6
  24196 ./ 206736 d6.c 206752 ipv6_1.html
206464 ../ 206478 daytime6.pl 206753 ipv6_2.html
206500 d200006c.html 206743 ipv6.html

としたときの "." のデータです。
little endian なので例によってバイトオーダがひっくりかえります。
ファイルのタイプは /usr/src/sys/ufs/ufs/dinode.h にあって

/* File types. */
#define IFMT 0170000 /* Mask of file type. */
#define IFIFO 0010000 /* Named pipe (fifo). */
#define IFCHR 0020000 /* Character device. */
#define IFDIR 0040000 /* Directory file. */
#define IFBLK 0060000 /* Block device. */
#define IFREG 0100000 /* Regular file. */
#define IFLNK 0120000 /* Symbolic link. */
#define IFSOCK 0140000 /* UNIX domain socket. */
#define IFWHT 0160000 /* Whiteout. */

となっています。これを見るとディレクトリは 0x04 です。
桁数があわないのは、パーミッションも一緒に保持させるためで、
下四桁はパーミッション用です。ファイルのパーミッションは
ディレクトリではなく別のところに保持されています。

No. 1798 # 筋肉。 2001/03/07 (水) 17:04:27
はじめあして。
この掲示板スクリプト、すばらしいです。いつも参考にしてます。
いきなりなんですけど、
2ちゃんねるみたいにレス式にするつもりないですか。
今のままだと、レスが分散してみにくいし、
それゆえ1つの話題に(2chみたいに)何百とレスつけるのは無理だし。

とゆーことで。

No. 1799 # 通行人ですが、一言。 2001/03/07 (水) 19:05:33
2ちゃんねるみたいに
「あげ」だの「さげ」だの「逝け」だの「氏ね」だのという書き込みは
見たくないです。
2ちゃんねるの何百というレスの半数は、そういった
「意味不明の書き込み」のように思えます。
そのようなレスを数多く書き込むよりも、今までのように
要点を的確に書いて頂いた方が、情報を得る側としてはありがたいです。
ここには検索機能もありますから、自分に必要な情報は
検索して探し出せば良いことですし、それで見つからなかった場合は
質問をすれば良いと考えています。
今のままでかまわないと思うのですが、常連の皆様方はどうですか?

No. 1800 # gixs 2001/03/08 (木) 00:30:06
>>1797 rosegarden
rosegardenさんには自明のことかもしれませんが。

ls -lで見えるサイズが、各ファイル(ディレクトリもファイル)
に対応するi-node内のサイズ情報を見ているのは、
rosegardenさんの説明のとおりです。

ディスク上の割り当てが(効率の為に)ブロック単位で行われるのも
rosegardenさんの言うとおりです。

普通ファイルの場合、i-node内のサイズ情報はファイルの末尾への書き込みの
オフセットで決まります。
8192バイトseekして1バイト書き込むとサイズは8193バイトです。
seek部分がカラだとブロックは割り当てられません。
俗に穴のあるファイルと呼ばれます。

ディレクトリの場合、i-node内のサイズ情報は割り当てられたブロックサイズ
そのものです。
理由は単に、本当のサイズ(が定義できたとしても)たいして意味がないからでしょう。

No. 1801 # gixs 2001/03/08 (木) 00:34:27
白状してしまうと、スレッド表示が欲しい、と前から思ってました。

>>1799 通行人ですが、一言。
2chのような書き込みがされることと、掲示板のユーザインターフェースは
全く別だと思います。
書き込みの内容や質は、場の雰囲気で決まるだけだと思います。

No. 1802 # おうお・まこと虫 [URL] 2001/03/08 (木) 10:51:35
たけし怪獣記を、霊能力者から、もらいました。怖いよー。

No. 1803 # rosegarden 2001/03/08 (木) 14:42:31
>>1800 gixs
> 普通ファイルの場合、i-node内のサイズ情報はファイルの末尾への書き込みの
> オフセットで決まります。
> 8192バイトseekして1バイト書き込むとサイズは8193バイトです。
> seek部分がカラだとブロックは割り当てられません。
> 俗に穴のあるファイルと呼ばれます。
穴のあるファイルという言葉ははじめて伺いました。
実はかなり無知な方なので、こうやって教えて頂くと助かります。
参考になる書き込みどうもありがとうございました。

No. 1804 # 68user 2001/03/08 (木) 15:14:47
>>1803 rosegarden
> 穴のあるファイルという言葉ははじめて伺いました。
では、ついでに。

穴あきファイルの作り方。
    % perl -e 'open(OUT,">tmp");seek(OUT,1000000,0);print OUT "a"'
穴あき部分のデータは HDD には存在しません。ですから、
    % ls -s tmp
で使用ブロック数を見ると、16 となっています。

しかし、穴あき部分を read(2) すると、最初から 0x00 が
入っているかのように扱われます。ですから、
    % cp tmp tmp2
    % ls -s tmp tmp2
      16 tmp
    992 tmp2
と、ファイルをコピーしただけで一気にファイルサイズが膨らみ、
file system full になってしまう可能性がありますので、注意が必要です。

No. 1805 # 68user 2001/03/08 (木) 15:47:17
>>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の主治医です」とか
書かなくて済むし ;-)

でも、情報が混ざって探しづらいということならば検討はしてみます。
# それを補うつもりで >>数字 形式のリンクを導入してみました。
# 将来的にはその情報からツリー形式を抽出できないかな、と。

あと、できればご自分が使いにくいと思う理由を分析していただ
けるととってもありがたいです (それが一番難しいんですけれども)。
使いやすい掲示板というのは永遠の課題ですので、今回のような
大規模な改変や、こまかなユーザインタフェースまわりまで、提案
していただけるのはありがたいことです。

しかし、最近これまでにも増して忙しくなってしまったので、
あまり期待はしないで下さいね。

No. 1806 # rosegarden 2001/03/08 (木) 16:30:21
>>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 さんがどんなスクリプトを書かれるのかは興味のあるところです。

No. 1807 # ひろし。 2001/03/08 (木) 22:27:55
ツリー式だと、レスのレスのレスの・・・ってやってくとどんどん
右端によってって、めちゃ見にくいと思う。
とほほラウンジは、スレ見る度にいちいちマウスうごかすのがめんどう。

ということで、2chは、やはりすばらしいと思う。

No. 1808 # やまま 2001/03/09 (金) 23:28:33
>>1770 68user
http://yamama.51.net/cgi-bin/minibbs.cgi?log=395
うひひひ。

えっと、自動リンクのところを、
こんな感じにしてみた。$strは、もうURLエンコードされてるっていうことで。
&amp;以外は、はっちゃいけないんだから、、、。
$str =~ s#(s?https?://(?:[\-_.!~*'()a-z0-9;/?:\@=+\$,%\#]|&amp)+)#<a href="$1">$1</a>#ig;

No. 1809 # Yuuki [E-mail] 2001/03/10 (土) 15:25:41
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を指定してるのにこうなってしまうのは、どうしてなんでしょうか?
教えてください。

No. 1810 # 68user 2001/03/12 (月) 00:52:18
>>1807 ひろし。
> ツリー式だと、レスのレスのレスの・・・ってやってくとどんどん
> 右端によってって、めちゃ見にくいと思う。
それは同感ですね。あと、現 SEGA BBS のような、ツリーを一括して
表示するのは最悪だと思います。とにかく見にくい。

>>1808 やまま
> こんな感じにしてみた。
どうもです。参考になります。

>>1809 Yuuki
> なぜか上の方に隠れてしまいます。
XDrawString/XmbDrawString に与える原点 x,y は、文字列の左下の
座標を与えます。本当はもうちょっと複雑で、原点に 10,10 を与えた
としても、フォントの lbearing, descent の値によっては、9,10 や
10,11 にドットが描画される可能性はあります。そこらへんの情報は
XmbTextExtents で取得できます。

No. 1811 # Donchan 2001/03/12 (月) 07:18:09
このサイトのUNIXシステムコールのopendirの説明にあったサンプルコードを打ち込んでみたのですが、
ファイル名の頭2文字が欠けてしまいます。dir->d_nameに-2すればファイル名の頭を指してくれるのですが
何故なんでしょう。OSは SunOS 5.5.1です。sys/dir.hを見てもちゃんとファイル名エントリがd_nameで定義されているのに。何か障害になるものがあるのでしたらお教え下さい。

No. 1812 # 通行人 2001/03/12 (月) 11:21:13
>>1811 Donchan
SunOS上でファイル名2文字切り落としが発生するということであれば、
おそらく使用されているコンパイラに問題があるものと思われます。
以下のアナウンスが参考になるのではないでしょうか。
http://www.sun.co.jp/tech/faq/solaris2_ja/Q6.19.html

以上、通りすがりの者でした。

No. 1813 # Yuuki [E-mail] 2001/03/12 (月) 14:35:37
>>1810 68user
> XDrawString/XmbDrawString に与える原点 x,y は、文字列の左下の
> 座標を与えます。
今まで左上にだと思いこんでました…。

> そこらへんの情報はXmbTextExtents で取得できます。
これで解決しました。
http://homepage1.nifty.com/tyuuki/tmp/drawstr.c
このようになりました。

ありがとうございます。

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