|
> もしかして、動作確認はいちいちブラウザで確認するしか > ないのですか? まさか :-) 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 とかとかとか。 |
|
こんにちは。 掲示板のファイルに書きこむ部分で、 「web と CGI のひみつ」の「掲示板を作ろう (2)」の最後にある テンポラリファイルに書き込んでからrenameする方法いいなと思ったのですが、 これだとrenameするときに衝突する可能性ありますよね? http://www.wakusei.ne.jp/twn/wwwlng.cgi?print+200003/00030031.txt ここにあるcheck-lockスクリプト(いつもありがたく使わせていただいてます m(_ _)m ) でやってみようと思うのですが、うまくrename時の衝突を回避する方法があればご教授ください。 |
|
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 です。 |