トップページphp
507コメント145KB

C言語CGI専用スレッド

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/04(金) 04:31ID:???
C/C++ CGI 専門のスレッドです。
PERL-CGI の情報はどこでも手に入りますけど
C-CGI の情報は少ないです。
C言語のCGIに関することはここに書きましょう。

スクリプトを検索できるサイトです。

http://script.lovely.to/search/home_script_c.html
http://cgi.resourceindex.com/Programs_and_Scripts/C_and_C++/
http://www.cgifiles.com/scripts/cc++/index.shtml

前スレ
http://tako.2ch.net/test/read.cgi?bbs=perl&key=971762830
0103    02/01/16 09:28ID:???
. ∧   ∧
( ´ ・∀・`) へー
0104名無しさん@お腹いっぱい。02/01/16 10:58ID:???
>>102 Call by value って知ってる??
0105名無しさん@お腹いっぱい。02/01/16 15:13ID:LEH3ezMV
>>103
死ね
0106名無しさん@お腹いっぱい。02/01/16 21:07ID:???
バッファの問題、文字コードの問題その他を一気に解決するにはC++.
以降をおすすめします。malloc/reallocおよびポインタ演算は
普段は使わなくなります。オーバーフローもなくなります。

string s;
char ch = 'A';

if (s.size() < LIMIT) s += ch;
0107名無しさん@お腹いっぱい。02/01/19 00:11ID:???
日下部圭子タンがこんなところに・・・・
0108名無しさん@お腹いっぱい。02/02/06 23:01ID:???
救済sage
0109名無しさん@お腹いっぱい。02/02/07 09:50ID:???
>>104
realloc は必ずしも元のアドレスを維持するとは限らないって話なんじゃないの?
なにか勘違いしてると思われ。
0110名無しさん@お腹いっぱい。02/02/17 21:03ID:???
保全sage
0111名無しさん@お腹いっぱい。02/02/18 10:00ID:9k5avLiX
111。
保全ageでもいいんじゃないの?
もっとも、このネタだったら、プログラム板の方がいいかもしれないけど。
0112名無しさん@お腹いっぱい。02/02/18 19:30ID:???
C初心者だけど、挑戦してみようかなぁ・・・
あちこち回って勉強して、ソース書いてここで晒したらアドバイスもらえますかね??
とりあえず参考になるようなとこググって来ます。
0113名無しさん@お腹いっぱい。02/02/18 21:12ID:9k5avLiX
がんばれ
0114名無しさん@お腹いっぱい。02/02/18 21:14ID:???
>>112
Cでコンソールアプリ書けたらCGIは簡単だ。ファイト。
0115名無しさん@お腹いっぱい。02/02/21 09:01ID:???
デバッグ出力をちゃんとファイルに書き出すようにね。
0116nobodyさん02/04/05 13:52ID:???
>>112
同じく。perl知らないしCはまあ読める程度だけどおいらもがんばるよん

・・・って、数カ月ぶりの投稿かよ!あらら。。
0117nobodyさん02/04/07 11:18ID:???
おはつです
CでCGIを書こうと奮闘しているのですが
(鯖はrimnet、OSはFreeBSD Ver.3改)
とりあえず書いたら、IEでは問題ないのだけど
NS4.7/6.2で見ようとするとError500 Internal Server Errorでます
原因がわかりません。
教えてください
ttp://members.tripod.co.jp/mod5/enter.c.txt
0118nobodyさん02/04/07 23:34ID:???
>>117
原因とは関係ないんだけどいくつか

・グローバル変数はグローバルである必要がなさそう
・exit(1);って何で1なのか
・getenv("HTTP_COOKIE")は2度も使う必要はないのでは
・mallocで確保したcookieの領域がfreeされてない
・exit()で終了させる前にヘッダを吐いてないとサーバーエラーになるはず
・コンパイルするとキャスト関係で警告が20個近く出る

そういったところをまず直した方がいいんじゃないかな
011911702/04/08 00:03ID:???
>>118
ありがとうございます
一つずつなおしていきます
0120        02/04/11 15:40ID:SIU7X4Sv
C言語でCGIを作成する時に参考にする良い書籍はないでしょうか?
書店に行っても9割方Perlの本なので・・・。
スレッドも、Perl、Ruby、phpはあるのですが、CのCGIは無かったので。
0121nobodyさん02/04/12 09:56ID:???
何らかのCGI本「CGIとは何か」を学べば、実のところ言語なんて関係ない。
0122nobodyさん02/04/12 09:56ID:???
失敬
s/何らかのCGI本/何らかのCGI本で/
0123nobodyさん02/04/12 15:52ID:???
>>120
C言語の本があれば特に問題ないかと
本で読むより検索で調べたほうが速いと思うので(タダだし)
「C言語 CGI」でgoogleにかければ出てきたような気がする
0124nobodyさん02/04/13 03:12ID:???
>>120
既出だと思うけど
http://www2k.biglobe.ne.jp/~motoi/cdecgi.html
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/
上の2つ+C言語の本1冊で作れるようになるはず。
URLデコードと文字列操作がperlよりも面倒なんだけど、それができ
ればまぁ大丈夫だと思う。
0125nobodyさん02/05/02 00:48ID:4Q8ZAUDc
>>1
前スレ
http://tako.2ch.net/test/read.cgi?bbs=perl&key=971762830

って、404 になるんですが、前スレはどこですか?
0126nobodyさん02/05/02 00:50ID:???
ばーか
0127nobodyさん02/05/02 01:08ID:3IS6vFPb
>>125
http://tako.2ch.net/perl/dat/971762830.dat
012812502/05/02 05:01ID:???
>>127
ありがとう。html になってから読みに行きます。

012912502/05/02 06:07ID:???
っと、思ったら .dat でも読めますね。
フォーマットも簡単そうだし、自分で整形してみます。
0130void()02/05/02 07:09ID:???
CでCGIつくるのとperlで作るのどっちがいいの?
0131nobodyさん02/05/02 08:22ID:???
>>130
一長一短
0132nobodyさん02/05/02 12:26ID:???
こんなスレあったのか。
C言語で頑張るのもいいけど、C++でSTL使うと物凄く楽だよ。

>>130
CもPerlも両方使えるならPerlの方が楽。実行速度以外ではほとんど全ての点で勝ち。
Cは知ってるけどPerlなんてしらねーよって場合はCの方が楽。
ただ、Cが使えるサーバが少ないんだけど。使えても使えるとは書いてないのが普通。
書いてないサーバだと、たとえ使えたとしても使っていいのか管理者に聞いた方がいいよ。

sourceforge.jpは使えるみたいだね。なんか説明読むとめんどくさそうだけど。
0133Perl厨02/05/02 12:53ID:???
実行速度もmod_perlを利用すればそれほど差は無くなるんだよな。
よってPerlの勝ち。

=====終了=====
0134void()02/05/02 16:14ID:???
なるほど。うーん。perlか。
0135nobodyさん02/05/03 02:18ID:DZDxEQpQ
C: 包丁
Perl: 皮剥き器
0136nobodyさん02/05/03 03:23ID:???
日本刀くらいかも>C
日本刀でジャガイモの皮を剥く感じ。
0137nobodyさん02/05/03 03:26ID:???
Cって今どういうのに使われてんの?
0138nobodyさん02/05/03 03:42ID:DZDxEQpQ
>>136
さすがに大げさすぎるでしょ。
せめてサバイバルナイフで髭を剃る、ぐらいで。

>>137
なんでもあるよ。認知度が低いだけだと思う。
GTK, SDL, OpenGL, libxml, あたりで検索してみて。

昨日から CGI 勉強し始めたけど、もうほとんど理解したよ。
スゴク少なかったのね、CGIって。もっと大げさなもんだと思ってた。
このスレが廃れている理由を理解した。(W
0139nobodyさん02/05/03 08:35ID:???
>>137
組み込みシステムとかで現役。
0140nobodyさん02/05/03 08:52ID:???
Cで普通にプログラミングしてる奴には、質問するほどの事がないんだよね。

>>137
意外といまだにCも多いよ。ゲーム系はほとんどC。素人の方がC++使ってる。
あと、組み込み系はコンパイラが無くて仕方なくCだね。
0141nobodyさん02/05/03 09:24ID:???
>>140
C++なんて実装したら貴重なりソースが消滅しません?
0142nobodyさん02/05/03 10:34ID:???
最近Perl止めてC言語勉強し始めたけど、
他の人が言ってるほど難しくないね。結構Perlと
似てるような文法も多いし。
0143nobodyさん02/05/03 10:41ID:???
>>142
だれがCを難しいと・・・?
まぁ、リファレンスわかってればポインタもかろうじてわかるでしょう。
0144nobodyさん02/05/03 12:27ID:???
グループウェアの CGI で、Perl でプロトタイプつくって、
Perl だとソースでちゃうし、インストールがややこしいので、
C で書きなおして、オブジェクトで販売してるって話聞いたけど、
みんなそんなことしてるの?
0145nobodyさん02/05/03 12:41ID:???
( ´_ゝ`)
0146nobodyさん02/05/03 22:50ID:???
>>142
わかりにくいのはポインタと構造体だけだと思うけどね・・・
0147nobodyさん02/05/04 12:33ID:???
>>146
ポインタはともかく構造体って難しい?
0148nobodyさん02/05/04 17:55ID:???
構造体は以外と詰まる人が多いみたいよ。
好きに作れちゃうところがかえって混乱しやすいみたい。
014914602/05/04 18:02ID:???
>>147
自分が詰まったところです。。。
0150 02/05/04 22:45ID:???
アセンブラに比べれば極楽だよ。
あははは(゚д゚)
0151nobodyさん02/05/04 23:53ID:???
じゃあ、共用体とか言ったらパニック?
0152nobodyさん02/05/05 13:43ID:???
構造体は難しいというより、初心者には使い道がわからないと思う。
共用体は実装の都合とかの、どちらかというと汚い部分で必要になるから、
初心者に教える必要ないよなぁ。エンディアンに依存しないプログラムを
書く場合なんかには便利なんだが。
0153nobodyさん02/05/07 18:11ID:iiKjSr3S
>>138
ソースうp汁!
0154nobodyさん02/05/08 11:03ID:???
>>148
実用的なプログラムを組もうとすると、構造体にもポインタを使うから、理解が進まないうちは、
エラーメッセージが出てもどう対処してよいかわからない、ということでは?
0155nobodyさん02/05/11 11:01ID:???
C&Perl 5によるCGI入門

http://www.amazon.co.jp/exec/obidos/ASIN/4795296960/qid=1021082069/br=1-12/ref=br_lf_b_12/250-0136950-8331429
0156nobodyさん02/07/17 12:01ID:???
>>155
アジソン・ウェスレイはいい本出してるなぁ。
0157nobodyさん02/08/02 00:19ID:???
age
0158nobodyさん02/08/05 00:11ID:mlKhZTXH
ファイルポインタを使って円の面積を計算するプログラム、教えてください。
ファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積





10

0159nobodyさん02/08/05 00:30ID:???
>>158
マルチはうせろ!
0160nobodyさん02/08/05 03:29ID:???
課題は自分でやろうね。
0161nobodyさん02/08/13 16:54ID:???
うーん活気がない。やはりPerlに押されっぱなしか。
しかし暗号のような変数を多用するPerlに不快感を感じる人には
それほど悪い選択ではないと思うが。
0162nobodyさん02/08/13 17:18ID:???
>>161
この辺がCの限界って感じ?
0163nobodyさん02/08/13 17:21ID:???
>>161
暗号のような変数を多用するPerlの方がわかり易い体なのでCのほうが実は不快。
0164nobodyさん02/08/13 17:31ID:???
うちの鯖Cコンパイラが使えないんだよなぁ・・(鬱
0165nobodyさん02/08/14 11:37ID:???
文字が中心であるWWWにおいて、
つねに「文字列の扱いには難がある」と評されるCが使いづらいのは、
当然といえば当然だな。
0166nobodyさん02/08/14 12:29ID:???
ライブラリ使わないからだろ
素のCなんか使ってられるかよ
精気表現もガベコレもstringライブラリも有る
つーか++ならSTLが有るだろ
0167nobodyさん02/08/14 21:11ID:???
C言語でつくるCGI入門って本出てたけどどう?買った人いる?
0168nobodyさん02/08/15 12:00ID:???
普通のCで質問なのですが、FtpCommand関数を使ってサーバーにあるファイルの
パーミッションをゲットするにはどうすればいいのでしょうか?
0169nobodyさん02/08/15 15:00ID:???
>>166
そう、そこだ!長年ため込まれてきた遺産が、不当に低く認識されている!
膨大なライブラリを活用すればC/C++でも自由なウェブプログラミングができる!
さて
>  精気表現もガベコレもstringライブラリも有る
ということなので、みなさんの知っているウェブプログラミング向けライブラリを
知らせあいましょう。
0170nobodyさん02/08/15 18:49ID:???
>>168
ちょっと返事がないからってスレ立てるなヴォケ。逝ってよし
0171nobodyさん02/08/15 18:55ID:???
>>168
まず立てたスレの削除依頼を出してこい。その後なら答えてやらんこともない。
0172nobodyさん02/08/15 19:06ID:???
CGI で学ぶ C++
http://www.matsusaka-u.ac.jp/~okumura/cplusplus/
0173nobodyさん02/08/16 00:03ID:???
>>170-171
知らねー奴に聞いてねーYO
0174nobodyさん02/08/16 00:08ID:???
まず立てたスレの削除依頼を出してこい。その後なら答えてやらんこともない。
0175nobodyさん02/08/16 04:26ID:???
>>169
取りあえず、知ってるのだけ

ガベコレ
http://www.hpl.hp.com/personal/Hans_Boehm/gc/

Perl5コンパチ精気氷原ほか
http://www.hi-ho.ne.jp/babaq/index.html

つーかC LIBRARYでぐぐればゲソゲソ出て来るよ
0176nobodyさん02/08/19 11:40ID:???
Cでメーラーもどきを作っているのですが、そこでちょっと質問
受信したメールの日時は
「Date: 13 Feb 2002 15:26:45 +900」の行でいいと思うのですが、
これが、下のように
「Date: 13 Feb 2002 15:26:45 -0000」ってなっているばあいは
時間が違うみたいなのですが、これはどういうことなのでしょうか?
日時を正しく取得する方法を教えて下さい。
0177nobodyさん02/08/20 17:23ID:0juDwDMi
タイムゾーンが、UTC(GMTか?)になっているってことですよね?
そのまま9時間足して、JSTでそろえるようにすればいいんじゃないですか?
簡易メーラーなら。
0178nobodyさん02/08/21 01:11ID:6KjI3tpo
>>167
> C言語でつくるCGI入門って本出てたけどどう?買った人いる?

これ、絶対に買ってはいけません。

サンプルコードがバッファオーバーフローのことを全く考えていないんで、
この本を参考に作ったサイトはあっという間にクラックされちまいますよ。

# 即刻、廃刊にしる!!
0179nobodyさん02/08/21 13:41ID:???
入門書籍ってのはそういうもんだ。
サンプルコードは本質がボケないように、極端にシンプルにする必要がある。

マニア向けなら違うけど。


とは言っても最低限注意書きなりは欲しいけどな。
0180nobodyさん02/08/23 15:30ID:???
いや、このご時世では、セキュリティに配慮のないサンプルは
サンプルとはいえないでしょ。
ここを強調表示して、CSS使って、...よりも、セキュリティ対策のためには
どういう点を厳守すべきか、そういうことを本にするんじゃないのか?
その本にバッファオーバーフローの危険があるのが本当なら、絶対買うのはやだな。

# 廃刊にしる!!
018117902/08/28 18:03ID:???
じゃぁ入稿よろしく。
018217802/09/01 15:37ID:???
>>179
> 入門書籍ってのはそういうもんだ。
> サンプルコードは本質がボケないように、極端にシンプルにする必要がある。

長さチェックを全く行なわずに
strcpy(buffer, getenv("QUERY_STRING"));
なんてことをするコードが何の注意書きもなく載っている本が
入門書としては最適なのですか?
0183nobodyさん02/09/02 20:45ID:???
そーじゃなくてさ、「CでCGI入門」みたいな書籍で全て説明する必要は無いし、
その書籍だけで全てを知ろうとするのがそもそもの間違と信じている。

餅は餅屋。内容が重複してちゃ存在価値が薄れるじゃん。
必要なら「C言語」を学習するための本。
「CGIを使う」を学習するための本。
「Cのセキュリティ上の落とし穴」を学習するための本、
を夫々読むのがスジじゃないかな。

ってゆーか今の子ドキュメン読まなさすぎ。
0184nobodyさん02/09/04 10:48ID:???
すみません、ちょっと教えて下さい。
FTPコマンドでNLSTやLISTコマンドを使った時に
年が表示されないのですが、これらのコマンドを使って
年を表示する方法を教えて下さい。
0185nobodyさん02/09/04 14:16ID:???
>>184
スレ違い
というより板違い。
0186nobodyさん02/09/07 14:44ID:iZ4CJlp8
> C言語でつくるCGI入門って本出てたけどどう?買った人いる?
買ったよ…。何かこう、中途半端な本だね、入門というなら「CGIブック」(インプレス)
の方がわかりやすいし、ああいったサンプルコードを書き集めてお茶を濁した
本ってのは、「CGIブック」なんかにくらべると、100分の1程度の手間暇
しかかかってないんじゃないかな。
018717802/09/08 22:29ID:mo1pPOwI
>>183
> そーじゃなくてさ、「CでCGI入門」みたいな書籍で全て説明する必要は無いし、
> その書籍だけで全てを知ろうとするのがそもそもの間違と信じている。

そりゃね、たとえば「strncpy()の落し穴」のようなネタはCGIの入門書で
扱うような内容じゃないが、だからといって危険なサンプルコードを
放置していいわけがない。
素直にsnprintf()とかを使えばいいじゃないか。
# 「snprintf()は移植性がない」なんてほざく馬鹿の意見は却下。
# C99の仕様書でも読んでこい。

しかもこの本、buffer overflowのことはかけらも気にしていないくせに、
「顧客の情報を守るために通信路を暗号化しましょう」なんていって
OpenSSLの解説をやってたりする。
著者にはいっぺん首吊ってもらいたいもんですな。

> 餅は餅屋。内容が重複してちゃ存在価値が薄れるじゃん。
> 必要なら「C言語」を学習するための本。
> 「CGIを使う」を学習するための本。
> 「Cのセキュリティ上の落とし穴」を学習するための本、
> を夫々読むのがスジじゃないかな。
>
> ってゆーか今の子ドキュメン読まなさすぎ。

もはや何を言いたいのかよくわからんが、今の子がドキュメントを
読もうと読むまいと、百害あって一利なしの悪書が本屋に並んでいることを
正当化できるわけがない。
0188nobodyさん02/09/08 23:31ID:+zFpDOv1
素人の質問なんですが、なんでわざわざCでCGI書くの?
今時のサーバリソースで実行性能が問題になるような処理をさせてるの?
0189nobodyさん02/09/08 23:42ID:???
速い、ってのがあるだろな。
0190nobodyさん02/09/09 00:16ID:???
でもforkのコストも馬鹿にできないからなあ。
(Cに限らずCGIそのものの問題だが)
019118802/09/09 01:29ID:???
>>189
いや、速さが表面化するような処理をさせてるの?って質問なんだが。。
0192nobodyさん02/09/09 03:13ID:QjoBptHP
C言語は早いという幻想を持った人が多いからねー
>>190 も言っているがforkのコスト大きすぎて実際の速度は出ないと思うんだが
簡単な実験をしてみたがmod_perlに移行した方が数段早かった
C言語で書く利点てまったくないといいきれるんだがどうだろうか?
主要部分のみCで記述してPerlのでXSでつくるって話しならわかるんだが
そのへんどうよ?
019318802/09/09 04:13ID:???
>>192
まあ仮にCGIでminimaxな最善手探索とかオンザフライ動画レンダリングとかを
するってんならCを選択するのもわかるのよ。ただフツーの掲示板なりを作るのに
Cを使うってのはいまいち理解できないなあ、と。実際mod_perlの方が圧倒的に速いだろうし。
あとCが役に立つといえば>>144が言ってるような商用配布時のソースコード秘匿性もあるね。
っていうかPerlのB::Bytecodeってどれくらいsecureなのかな…(スレ違い
0194nobodyさん02/09/09 15:04ID:???
C99じゃ移植性が高いとはいえないな。
0195nobodyさん02/09/19 23:01ID:0POzpo3L
>>188
単純に「Perlが嫌い」ってのが実際は一番の理由かも。少なくとも俺はそう。
スクリプト言語のいい意味でのいい加減さが我慢できないのよ。
0196nobodyさん02/09/19 23:56ID:8HqC53rG
>>188
使い慣れてるからかな。
わざわざPerlやJAVAで書くより悩まずに書けるから。
0197 02/09/19 23:59ID:dJIVcLdc
http://www.430.jp/rak2/user/ryuugasakikaori/
0198nobodyさん02/09/20 01:32ID:7PCzcn/3
Perlを覚える暇があったら今使えるCで書いた方が早いや。
0199nobodyさん02/09/20 01:47ID:???
とあるPJで、
「Disk容量が無くてPerlをインストールできないのでgccで」
ってサイト構築注文してきた客もいたな・・・(藁
0200nobodyさん02/09/20 10:11ID:???
gccをインストールする容量はあるのか(笑)
0201ヘタレ02/09/21 08:05ID:bP6NWhuv
今までサンザンCでCGI作ってライブラリが死ぬほどあるので意地でもCで書く。
Perlでコード書いたらCの4倍時間がかかったよ・・
だけど10万回/日呼ばれるようなときは極力PHP。
Cだとさ、納品したあとにメンテの仕事も返ってくるしね藁
0202nobodyさん02/09/21 17:52ID:???
10万access/day ぐらいで弱腰になってるあたり
本格的にヘタレですな。
■ このスレッドは過去ログ倉庫に格納されています