C言語CGI専用スレッド
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/04(金) 04:31ID:???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
0069名無しさん@お腹いっぱい。
2001/07/24(火) 12:32ID:???なぜその質問をこのスレに?
Content-type: image/jpeg
でも最初に吐き出してみれ
0070名無しさん@お腹いっぱい。
2001/07/24(火) 15:29ID:???>>64さんと同じ状態で
>>67さんの言われるようにやったつもりですがダメでした。
お手数ですがサンプルなどを示していただけませんでしょうか?
0071名無しさん@お腹いっぱい。
2001/07/24(火) 15:32ID:???いと思いますが
0072名無しさん@お腹いっぱい。
2001/07/24(火) 15:44ID:4bcQgJxIということでいいのだろうか?>>70
すると半角カナの処理というものは
1.半角カナが表示できないよ どうしよう ウエンウエン
2.半角カナを全角カナに変換したいけどできないよ ワーン
3.半角カナの入力があった場合「半角だゴルァ!!」と表示させるぞ ゴルァ!!
さて、どれでしょう?
密かにどれでもないことを期待する。
007370
2001/07/24(火) 18:50ID:???それ以外にバケない方法があれば教えていただければ幸いです。
0075名無しさん@お腹いっぱい。
2001/07/25(水) 15:39ID:???少なくとも2人はいらっしゃると思われる半角カナファンのかたへ
こういうページは見られましたか?
0076名無しさん@お腹いっぱい。
2001/07/25(水) 22:14ID:sJbBeL9c私はアセンブリを全く知らないのでこのhoge.exe.stackdumpの内容を理解する事ができません。
メモリ操作が間違ってるのだとは思いますが・・・・・
どなたかこのファイルが何を教えてくれているのか教えてください。
Exception: STATUS_ACCESS_VIOLATION at eip=00401197
eax=00000000 ebx=00000004 ecx=0254FA7C edx=00000000 esi=6107D0E8 edi=00000000
ebp=0254F818 esp=0254FAD0 program=E:\APACHE\CGI-BIN\HOGE.EXE
cs=0167 ds=016F es=016F fs=4CB7 gs=0000 ss=016F
Stack trace:
Frame Function Args
0254F818 00401197 (00000000, 00000000, 00000000, 00000000)
0254FBFC 00401197 (00000001, 04580998, 04580008, FFFFFFFE)
0254FD88 61003859 (00000000, 00000000, 4D448DCE, 00000002)
0254FDB8 61003A3D (00401064, 00000000, 81952E1C, 00000000)
0254FDD8 61003A7C (00000000, 00000000, FFFFFFFF, 00000001)
0254FE08 00406063 (00401064, 0254FC8C, BFFC9490, 0254FF68)
0254FE38 0040103D (00000000, 81952BB8, 00540000, 6C696B53)
0254FF78 BFF8B6E6 (81952DD8, 00000008, 81952BB8, 00000000)
893210 [main] hoge 1744003 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
912544 [main] hoge 1744003 handle_exceptions: Error while dumping state (probably corrupted stack)
0077名無しさん@お腹いっぱい。
2001/07/26(木) 11:38ID:???ふつーはソースみるかデバッガ使うかする。
0078名無しさん@お腹いっぱい。
2001/08/06(月) 16:54ID:???を全角カナ文字に変換までしてくれる関数はありませんか?
0079名無しさん@お腹いっぱい。
2001/08/06(月) 17:13ID:???0080名無しさん@お腹いっぱい。
2001/08/06(月) 19:40ID:???とりあえずMAPファイル出してスタックダンプの各行がどの関数か調べなさい
0081名無しさん@お腹いっぱい。
01/08/31 02:18ID:wS5jDtEgで、多数のテーブルデータ(1000*5ぐらいの項目数)を扱うなら
どのような手法を使うのがもっとも良いでしょうか?
5000個もファイル作ってられないし、適度に項目を連結して保存、
取り出す都度再分解、という手法で良いんでしょうか?
0083名無しさん@お腹いっぱい。
01/08/31 12:06ID:yzeHKSD2これは、一般的に逝ってそうなのか、それとも、そのコードを書いたやつがたまたまヘタレだったのか。
0084名無しさん@お腹いっぱい。
01/08/31 12:26ID:ZHAulmbY0085名無しさん@お腹いっぱい。
01/11/03 00:20ID:Z5GZ1dPh箱庭のC++バージョンのコンパイルのことで聞きたいス。
今借りてるサーバがTELNET使用禁止なんだけど、GCCは使用可とのこと。
こういう場合は、CGIを使ってコンパイル出来るヨ・・・って聞かされたんだけ
ど・・・。
検索して「telnet.cgi」っていうのを見つけたけど、なんか箱庭をコンパイルでき
そうな感じがしない・・・。
誰かわかる人います?
0086名無しさん@お腹いっぱい。
01/11/03 00:22ID:???>そうな感じがしない・・・。
感じで決め付けるな。
008785
01/11/03 00:44ID:Z5GZ1dPhtelnet.cgiではソースファイル拡張子の設定が一種類しかできない
ようなのでムリかな・・・と。
箱庭C++版は「.c」と「.h」を使うので。
0088名無しさん@お腹いっぱい。
01/11/03 00:55ID:???或いは出来る人に頼みましょう。
ここでサポート出来る段階ではないです。
008985
01/11/03 01:01ID:Z5GZ1dPh確かにshellとCはまるでダメです。
書籍のコンパイルの説明などをいろいろ目をとおしたけど、どれも
CGI(Perl)を使ったやり方の説明がなかったので。
なんかいい書籍はないですかねぇ・・・。
ご忠告感謝です。
0090名無しさん
01/11/03 01:05ID:???良く解らんけど、その感じだと多分エラーを捕まえて無いんだろ?
どんなcgi使ってるか知らないが適当にファイルにリダイレクトでも
しなきゃ、エラーが読めないじゃん。
で、読めたとしても、まあ悲観的に言うと8割方処理系依存で一つや二つ
エラーが出ると思うが。
それを直して、またコンパイルして・・・・
コーディングしろとは言わんが、ローカルでコンパイル位出来ないと
道は遠そうだ
0091名無しさん@お腹いっぱい。
01/11/03 01:12ID:???Perlとちがって低いとこまでいじれるから,
問題起きた時大変だよ。
それが原因で鯖トんだりしたら,85氏の責任。
いろいろ請求されたりするかもしれん。
鯖名・telnet.cgi・GCC・.hとかで検索かければ,
先人がなにか書いてるかもね。
009285
01/11/03 01:43ID:Z5GZ1dPhまだコンパイル自体してないんです。
telnet.cgiについてもよくわかっていないので。
あせらずオイオイ勉強していくことにします。
お二方のご助言感謝。
0093名無しさん@お腹いっぱい。
01/11/03 01:45ID:???タダだし、暇つぶしにはなると思うよ
PERL分かるなら、コマンド投げてる所の下にでも system ("$hoge 2>>./error.txt");
とでも書いてerror.txt置いとけばメッセージは読めるよ(読みにくいけど。。)
0094名無しさん@お腹いっぱい。
01/11/03 02:04ID:???http://www.cygwin.com/
WINでUnixLIKEなシェルが使えるよ、これでしばらく遊べば
後は同じ事をサーバでやるだけだから・・・・
コケた時にSTDERRを上手くキャッチするこってす
009585
01/11/03 09:29ID:m85yJ//jでは早速試してみることにします。
それにしても質問が激しくアレだったので「厨房氏ね」とかいう
レスを覚悟してたら・・・親切なレスついて嬉しいス。
これからはCとshellの勉強に励む事にします。
みんなありがと〜。
0096名無しさん@お腹いっぱい。
01/11/08 18:55ID:???0097名無しさん@お腹いっぱい。
02/01/15 13:27ID:NbvxSmgA速いor転送量・サーバ負荷が軽減されるぜ!がんばれ!
0098名無しさん@お腹いっぱい。
02/01/15 13:45ID:???「転送量」は吐き出すモノによって変わるものだから、
C でやろうが Perlでやろうが同じです。
0099名無しさん@お腹いっぱい。
02/01/15 15:01ID:8PDDHsp4C言語でのCGIの場合、領域の確保が問題に思えます。
相手がどこまでのサイズのデータを送信してくるかわかりませんし。
送信フォームでサイズ指定をしても、悪意を持ったものに
不正なサイズの大きなデータを送られたら、領域に指定した
サイズをオーバーしてしまうように思えます。
リファラーなどで制限しても、それくらいはどうにでもなりますし。
かと言って、無闇に初期化する領域を大きくしてもメモリの無駄に感じます。
皆さんはそのような事に対してどのような対策をとっておられるのでしょう?
C言語の勉強をしているのですがどうにもそこで詰まってしまって・・・。
どうか、どなたかご教授ください。
0100日下部圭子 ◆ib749tYo
02/01/15 15:42ID:???> C言語でのCGIの場合、領域の確保が問題に思えます。
> 相手がどこまでのサイズのデータを送信してくるかわかりませんし。
malloc()やrealloc()を使って動的に確保するのが一般的でしょう。
データの最大長が数十キロや数百キロ程度なら、固定長で確保しても
問題ないと思いますが。
> 送信フォームでサイズ指定をしても、悪意を持ったものに
> 不正なサイズの大きなデータを送られたら、領域に指定した
> サイズをオーバーしてしまうように思えます。
Cに限らず、どのような言語でもデータ量の上限チェックは入れる
必要がありますよ。
# CGIだと、Webサーヴァーのほうで制限してくれるのかな?
----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
010199
02/01/15 16:21ID:???malloc関数はこういう時に使うのですね。
今まで色んな所でsizeof演算子と組み合わされているのを見てきたのに
いまいち良くわかっていなかったのですが、ようやく理解できました。
これから色々試しながら勉強していこうと思います。(もちろんローカルで)
勉強になりました。
本当にありがとうございます。
0102名無しさん@お腹いっぱい。
02/01/16 09:04ID:b610iUlz関数の中で realloc 使うときはよく注意すること...
int *ptr, *tmp;
ptr =(int *)malloc( sizeof( int ) * 10 );
tmp =(int *)realloc( ptr, sizeof( int ) * 30 );
なとき、ptr == tmp とは限らないので。
void extend( int *array, size_t len )
{
int *tmp;
tmp =(int *)realloc( array, sizeof( int ) * len );
}
とかやってると、はまる。
void *ptr;
ptr =(int *)malloc( sizeof( int ) * 10 );
extend( ptr, 30 );
memcpy( ptr, "hello, world!", 14 ); /* SIGSEGV だったりして */
0104名無しさん@お腹いっぱい。
02/01/16 10:58ID:???0105名無しさん@お腹いっぱい。
02/01/16 15:13ID:LEH3ezMV死ね
0106名無しさん@お腹いっぱい。
02/01/16 21:07ID:???以降をおすすめします。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:???0109名無しさん@お腹いっぱい。
02/02/07 09:50ID:???realloc は必ずしも元のアドレスを維持するとは限らないって話なんじゃないの?
なにか勘違いしてると思われ。
0110名無しさん@お腹いっぱい。
02/02/17 21:03ID:???0111名無しさん@お腹いっぱい。
02/02/18 10:00ID:9k5avLiX保全ageでもいいんじゃないの?
もっとも、このネタだったら、プログラム板の方がいいかもしれないけど。
0112名無しさん@お腹いっぱい。
02/02/18 19:30ID:???あちこち回って勉強して、ソース書いてここで晒したらアドバイスもらえますかね??
とりあえず参考になるようなとこググって来ます。
0113名無しさん@お腹いっぱい。
02/02/18 21:12ID:9k5avLiX0114名無しさん@お腹いっぱい。
02/02/18 21:14ID:???Cでコンソールアプリ書けたらCGIは簡単だ。ファイト。
0115名無しさん@お腹いっぱい。
02/02/21 09:01ID:???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:???原因とは関係ないんだけどいくつか
・グローバル変数はグローバルである必要がなさそう
・exit(1);って何で1なのか
・getenv("HTTP_COOKIE")は2度も使う必要はないのでは
・mallocで確保したcookieの領域がfreeされてない
・exit()で終了させる前にヘッダを吐いてないとサーバーエラーになるはず
・コンパイルするとキャスト関係で警告が20個近く出る
そういったところをまず直した方がいいんじゃないかな
0120
02/04/11 15:40ID:SIU7X4Sv書店に行っても9割方Perlの本なので・・・。
スレッドも、Perl、Ruby、phpはあるのですが、CのCGIは無かったので。
0121nobodyさん
02/04/12 09:56ID:???0122nobodyさん
02/04/12 09:56ID:???s/何らかのCGI本/何らかのCGI本で/
0123nobodyさん
02/04/12 15:52ID:???C言語の本があれば特に問題ないかと
本で読むより検索で調べたほうが速いと思うので(タダだし)
「C言語 CGI」でgoogleにかければ出てきたような気がする
0124nobodyさん
02/04/13 03:12ID:???既出だと思うけど
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前スレ
http://tako.2ch.net/test/read.cgi?bbs=perl&key=971762830
って、404 になるんですが、前スレはどこですか?
0126nobodyさん
02/05/02 00:50ID:???0127nobodyさん
02/05/02 01:08ID:3IS6vFPbhttp://tako.2ch.net/perl/dat/971762830.dat
0129125
02/05/02 06:07ID:???フォーマットも簡単そうだし、自分で整形してみます。
0130void()
02/05/02 07:09ID:???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:???よってPerlの勝ち。
=====終了=====
0134void()
02/05/02 16:14ID:???0135nobodyさん
02/05/03 02:18ID:DZDxEQpQPerl: 皮剥き器
0136nobodyさん
02/05/03 03:23ID:???日本刀でジャガイモの皮を剥く感じ。
0137nobodyさん
02/05/03 03:26ID:???0138nobodyさん
02/05/03 03:42ID:DZDxEQpQさすがに大げさすぎるでしょ。
せめてサバイバルナイフで髭を剃る、ぐらいで。
>>137
なんでもあるよ。認知度が低いだけだと思う。
GTK, SDL, OpenGL, libxml, あたりで検索してみて。
昨日から CGI 勉強し始めたけど、もうほとんど理解したよ。
スゴク少なかったのね、CGIって。もっと大げさなもんだと思ってた。
このスレが廃れている理由を理解した。(W
0140nobodyさん
02/05/03 08:52ID:???>>137
意外といまだにCも多いよ。ゲーム系はほとんどC。素人の方がC++使ってる。
あと、組み込み系はコンパイラが無くて仕方なくCだね。
0142nobodyさん
02/05/03 10:34ID:???他の人が言ってるほど難しくないね。結構Perlと
似てるような文法も多いし。
0144nobodyさん
02/05/03 12:27ID:???Perl だとソースでちゃうし、インストールがややこしいので、
C で書きなおして、オブジェクトで販売してるって話聞いたけど、
みんなそんなことしてるの?
0145nobodyさん
02/05/03 12:41ID:???0148nobodyさん
02/05/04 17:55ID:???好きに作れちゃうところがかえって混乱しやすいみたい。
0151nobodyさん
02/05/04 23:53ID:???0152nobodyさん
02/05/05 13:43ID:???共用体は実装の都合とかの、どちらかというと汚い部分で必要になるから、
初心者に教える必要ないよなぁ。エンディアンに依存しないプログラムを
書く場合なんかには便利なんだが。
0153nobodyさん
02/05/07 18:11ID:iiKjSr3Sソースうp汁!
0154nobodyさん
02/05/08 11:03ID:???実用的なプログラムを組もうとすると、構造体にもポインタを使うから、理解が進まないうちは、
エラーメッセージが出てもどう対処してよいかわからない、ということでは?
0155nobodyさん
02/05/11 11:01ID:???http://www.amazon.co.jp/exec/obidos/ASIN/4795296960/qid=1021082069/br=1-12/ref=br_lf_b_12/250-0136950-8331429
0157nobodyさん
02/08/02 00:19ID:???0158nobodyさん
02/08/05 00:11ID:mlKhZTXHファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積
1
2
3
・
・
10
0160nobodyさん
02/08/05 03:29ID:???0161nobodyさん
02/08/13 16:54ID:???しかし暗号のような変数を多用するPerlに不快感を感じる人には
それほど悪い選択ではないと思うが。
0164nobodyさん
02/08/13 17:31ID:???0165nobodyさん
02/08/14 11:37ID:???つねに「文字列の扱いには難がある」と評されるCが使いづらいのは、
当然といえば当然だな。
0166nobodyさん
02/08/14 12:29ID:???素のCなんか使ってられるかよ
精気表現もガベコレもstringライブラリも有る
つーか++ならSTLが有るだろ
0167nobodyさん
02/08/14 21:11ID:???0168nobodyさん
02/08/15 12:00ID:???パーミッションをゲットするにはどうすればいいのでしょうか?
0169nobodyさん
02/08/15 15:00ID:???そう、そこだ!長年ため込まれてきた遺産が、不当に低く認識されている!
膨大なライブラリを活用すればC/C++でも自由なウェブプログラミングができる!
さて
> 精気表現もガベコレもstringライブラリも有る
ということなので、みなさんの知っているウェブプログラミング向けライブラリを
知らせあいましょう。
■ このスレッドは過去ログ倉庫に格納されています