|
> あきらめるのは早いです。 うーん、ごもっとも。恥ずかしながらこういう 方法には全く気づきませんでした。 |
|
68userさん、ご教授ありがとうございました。 gccのオプション調べてみます。 |
|
こんにちは、はぴおです。 68userさんレスありがとうございました。 非常に恥ずかしい話ですが、68userさんのおっしゃる通りです。 何で気が付かなかったんだろうか??? ありがとうございました! HTTP、SMTP、POP3ができたので、今度はFTPをやろうかと 思います。 |
|
お世話になります。 実は今、C言語でCGIの勉強をしているのですけど、 CGIのデバッグってどうやるんでしょうか? もしかして、動作確認はいちいちブラウザで確認するしかないのですか? つ、つらい‥ なにか、効率的なデバッグ方法を知っていらしたら 教えて下さい。お願いします。 |
|
> もしかして、動作確認はいちいちブラウザで確認するしか > ないのですか? まさか :-) 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時の衝突を回避する方法があればご教授ください。 |