68user's page 掲示板

Prev< No. 1387〜1389> Next  [最新発言に戻る] [過去ログ一覧]
No. 1387 # 68user 2000/11/18 (土) 03:09:00
> もしかして、動作確認はいちいちブラウザで確認するしか
> ないのですか?
まさか :-)

CGI というのはインタフェースです。

ブラウザからの情報を、環境変数と標準入力経由で
プログラムに引き渡すインタフェース。それが CGI。

だから、
    % env REQUEST_METHOD=GET QUERY_STRING='hoge=1&fuga=2' ./foo.cgi
とか
    % set content='number=123&str=%21%22%23'
    % echo -n $content | env REQUEST_METHOD=POST CONTENT_LENGTH=`echo -n $content|wc -c` ./foo.cgi
とかとか、
    #ifdef DEBUG
    #define INPUTFILE_FOR_DEBUG "debug.txt"
    {
        char tmp[128];
        struct stat sb;
        setenv("REQUEST_METHOD", "POST", 1);
        stat(INPUTFILE_FOR_DEBUG, &sb);
        sprintf(tmp, "%d", sb->st_size);
        setenv("CONTENT_LENGTH",tmp , 1);
        freopen(INPUTFILE_FOR_DEBUG, "r", stdin); /* この使い方合ってるっけなぁ… */
    }
    #endif
とかとかとか。

No. 1388 # ぷに辻 2000/11/19 (日) 15:09:31
こんにちは。
掲示板のファイルに書きこむ部分で、
「web と CGI のひみつ」の「掲示板を作ろう (2)」の最後にある
テンポラリファイルに書き込んでからrenameする方法いいなと思ったのですが、
これだとrenameするときに衝突する可能性ありますよね?

http://www.wakusei.ne.jp/twn/wwwlng.cgi?print+200003/00030031.txt

ここにあるcheck-lockスクリプト(いつもありがたく使わせていただいてます m(_ _)m )
でやってみようと思うのですが、うまくrename時の衝突を回避する方法があればご教授ください。

No. 1389 # Yuuki [E-mail] 2000/11/20 (月) 06:40:09
http://x68000.startshop.co.jp/~68user/net/sample/echo-server-1.c
このコードのバグを見つけました。
コンパイルして動かすとacceptで失敗するのでこっちの設定が
悪いんだろうと思ってFreeBSD関連のメーリングリストを
検索していたら原因がわかりました。
connected_socket = accept(listening_socket....
の上に
len = sizeof( sin );
が必要です。
バグの理由は
http://home.jp.FreeBSD.ORG/cgi-bin/showmail/FreeBSD-users-jp/43141
です。

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