C言語のCGIを語りつつ普及するスレ
■ このスレッドは過去ログ倉庫に格納されています
0001somebodyさん
03/03/23 13:20ID:???前Cでかかれた掲示板を見かけたんですけど、なんかタグ用の処理が行われていないらしくて、グロ画像やエロ画像なんて
貼りたい放題でしたよ・・。わたしなんて<xmp>タグを貼りかけましたよ・・・
それはどうでもイイとしてKENTさんのCGIみたいに高機能で手軽なCGIのC言語版みたいなのがあったらなぁなんて思ったことありませんか?
このスレではそんなCGIについて語って、CでCGIの考えを普及していきたいです。
0237nobodyさん
03/04/19 16:30ID:???0241fusianasan
03/04/19 21:18ID:???0242山崎渉
03/04/20 05:58ID:???( ^^ )< ぬるぽ(^^)
0243fusianasan
03/04/20 17:37ID:???/  ̄ ̄ー―-_
▲ ) /
/ハハハ\ |\|\|\___イ
. / \ | /\ /\lllll|
/ _ _ \ | /・\ /・\ |
. | ⊂⊃ ⊂⊃ | |  ̄/、  ̄ ̄ )
(| ∴ ∪ ∴ | |  ̄ /
\ <=> / ヽ <三> /
\____/ ヽ /
∧ /| \/
,r‐‐‐‐‐‐‐‐‐'´ `゙‐‐‐‐‐‐‐‐‐‐、r‐‐‐‐‐‐'´ `゙‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐、
| 山崎君、きみはぬるぽしか言えないのかい| そんなに卑怯者、卑怯者と |
i やっぱりきみは卑怯ものさ。 i 言わないでくれよ〜(泣 i
0245nobodyさん
03/04/23 19:47ID:jAUiG1DXWhat does it mean?
0247nobodyさん
03/04/23 21:10ID:???0248nobodyさん
03/04/26 01:53ID:???代入ひとつからしてもめんどくさくてしょうがない。
0251ふしアナ:
03/04/27 21:06ID:Cn2+e3lFこれってなんて読む?
(漏れの場合)
char ちゃー
argv あーぐぶい
printf ぷりんとふ
sprintf すぷりんとふ
hex へっくす
int いんと
getenv げっといーえぬぶい
void ぼいど
buffer ばっはー/ぶっふぁー
malloc まろっく
とりあえず今日はこのへんで・・・・
0254ふしアナ:
03/05/03 23:37ID:4lYMudidあるとおもいますけど、それぞれの美点と欠点をあげてくれませんか?
0256nobodyさん
03/05/03 23:39ID:???0257FENT
03/05/06 00:10ID:mpO79UQ6UNCGIをWINDOWSで実行モジュール".exe"にコンパイルしたことある人
コンパイル方法おしえて。
英語のDocを読むとターボCがなんちゃらでわからん。
できれば、VC++とかでコンパイルしたいのねー。
0258FENT
03/05/06 00:14ID:mpO79UQ6WINDOWSで動かす場合だけど。
拡張子".cpp"で作成すればWINAPIをガシガシつかったCGIが出来るよ。
0259nobodyさん
03/05/06 00:21ID:???0260nobodyさん
03/05/06 00:47ID:???0261FENT
03/05/06 01:04ID:mpO79UQ6UNCGIに変わるもので、おすすめのものしっているかた
いらしたら教えてください。
0262動画直リン
03/05/06 01:10ID:qyy2Fj990263nobodyさん
03/05/06 01:18ID:???char *Decode(char *str)
{
unsigned char *p, *bstr;
if(*str == '\0') return str;
bstr = (unsigned char*)str;
for(p=bstr; *bstr!='\0'; bstr++) {
if(*bstr=='+') {
*p=' ';
p++;
}
else if(*bstr=='%') {
*p = (hex2dec(*(bstr+1)) * 16)+(hex2dec(*(bstr+2)));
p++;
bstr+=2;
}
else {
*p = *bstr;
p++;
}
}
*p='\0';
return str;
}
何年か前に作ったデコード関数。
マクロの括弧が無駄に多い気が・・・
0264263
03/05/06 01:20ID:???0265nobodyさん
03/05/06 01:29ID:???0266_
03/05/06 01:35ID:???http://www.japan.pinkserver.com/kensuke/hankaku/hankaku07.html
http://japan.pinkserver.com/kensuke/zenkaku/index.html
http://www.japan.pinkserver.com/kensuke/hankaku/hankaku08.html
http://japan.pinkserver.com/kensuke/hankaku/hankaku10.html
http://www.japan.pinkserver.com/kensuke/hankaku/hankaku07.html
http://japan.pinkserver.com/kensuke/hankaku/hankaku03.html
http://www.japan.pinkserver.com/kensuke/hankaku/hankaku05.html
http://japan.pinkserver.com/kensuke/hankaku/hankaku01.html
http://www.japan.pinkserver.com/kensuke/hankaku/hankaku06.html
http://japan.pinkserver.com/kensuke/hankaku/hankaku04.html
http://www.japan.pinkserver.com/kensuke/hankaku/hankaku09.html
0267261
03/05/06 02:05ID:mpO79UQ6返信ありがとうございます。すみませんでした。
う〜ん
ヘキサのデコードというか、UNCGIを使いたかったのは、
HTTPのリクエストから切分けてデコードした後に、
環境変数にセットしている、仕組みをそのまま使いたいなーって思って
たんですよ。
UNCGIの処理の流れ的には
・環境変数取得
・切離し後デコード
・それぞれ別の環境変数にセット
・URLの引数(ttp://***/uncgi/aaa.exe)のプログラム(aaa.exe)を起動
・起動されたプログラムは、環境変数よりPOST及びGETの
パラメータを取得
こんな感じだとおもうんですよ。作ればいいんですけど・・・
ただ、コンパイルできたらいいなーと思いまして。
VC++だと、何ヶ所かコンパイルにひっかかってしまうので
私のめんどくさがりやから・・・質問してしまいました。
0268261
03/05/06 02:08ID:mpO79UQ6ただ・・この仕組みをつくるとしたら疑問があるんです。
HTTPのリクエストで起動されたCGIによってセットされる環境変数は、
ブラウザごとに別々の扱い(DOSプロンプトのように)になるのでしょうか?
同時にアクセスがあった場合、同一名称の環境変数は、それぞれブラウザ
ごとに違う値を保持するのかな???
0269nobodyさん
03/05/06 03:04ID:CpGJxcjL結局cgiccに移行したよ。cgiccおすすめ。
0270bloom
03/05/06 03:10ID:qyy2Fj990271_
03/05/06 03:25ID:???http://www.japan.pinkserver.com/kaorin/moe/jaz04.html
http://japan.pinkserver.com/kaorin/mona/index.html
http://www.japan.pinkserver.com/kaorin/moe/jaz05.html
http://japan.pinkserver.com/kaorin/moe/jaz08.html
http://www.japan.pinkserver.com/kaorin/moe/jaz09.html
http://japan.pinkserver.com/kaorin/moe/jaz02.html
http://www.japan.pinkserver.com/kaorin/moe/jaz06.html
http://japan.pinkserver.com/kaorin/moe/jaz01.html
http://www.japan.pinkserver.com/kaorin/moe/jaz10.html
http://japan.pinkserver.com/kaorin/moe/jaz07.html
http://www.japan.pinkserver.com/kaorin/moe/jaz03.html
0272_
03/05/06 04:07ID:???http://www.japan.pinkserver.com/kaorin/moe/jaz03.html
http://japan.pinkserver.com/kaorin/mona/index.html
http://www.japan.pinkserver.com/kaorin/moe/jaz02.html
http://japan.pinkserver.com/kaorin/moe/jaz08.html
http://www.japan.pinkserver.com/kaorin/moe/jaz09.html
http://japan.pinkserver.com/kaorin/moe/jaz05.html
http://www.japan.pinkserver.com/kaorin/moe/jaz06.html
http://japan.pinkserver.com/kaorin/moe/jaz01.html
http://www.japan.pinkserver.com/kaorin/moe/jaz10.html
http://japan.pinkserver.com/kaorin/moe/jaz07.html
http://www.japan.pinkserver.com/kaorin/moe/jaz04.html
0274nobodyさん
03/05/07 00:56ID:ZdGvFTnv↑朝早くから
誰 オ マ イ
0275nobodyさん
03/05/08 15:14ID:???ニコラ・テスラのパクりだろ。( ゚Д゚)
http://plaza16.mbn.or.jp/~satchel/
0276nobodyさん
03/05/20 01:53ID:???void Http::Decode(std::string* pstrQuery)
{
std::string::size_type nPos;
for (nPos = 0; (nPos = pstrQuery->find('+', nPos)) != string::npos; pstrQuery->replace(nPos++, 1, 1, ' '));
for (nPos = 0; (nPos = pstrQuery->find('%', nPos)) != string::npos; nPos++)) {
unsigned int nCode;
if (std::sscanf(pstrQuery->c_str() + nPos + 1, "%02x", &nCode) == 1)
pstrQuery->replace(nPos, 3, 1, static_cast<char>(nCode));
}
}
0277山崎渉
03/05/22 02:04ID:???0278山崎渉
03/05/28 17:18ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0279山�ア渉
03/06/15 18:32ID:VQqVlPF20280King.Yamazaki ◆/3cyWCTf.c
03/06/15 18:42ID:VQqVlPF2I will show you any of them.
http://fh.aaacafe.ne.jp/
GET! Free Server Space!
0281山崎 渉
03/07/15 11:12ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0282山崎 渉
03/08/02 02:39ID:???( ^^ )< ぬるぽ(^^)
0283ぼるじょあ ◆ySd1dMH5Gk
03/08/02 05:23ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0284nobodyさん
03/08/10 00:34ID:3gdl3sO5どっちが高速安定動作するんですか?
0285nobodyさん
03/08/10 00:37ID:???( ゚д゚)ポカーン ( ゚д゚)ポカーン
( ゚д゚)ポカーン ( ゚д゚)ポカーン ( ゚д゚)ポカーン ( ゚д゚)ポカーン
0286_
03/08/10 00:40ID:???0287nobodyさん
03/08/10 16:43ID:37o8iGE7普通にflock関数を使うのはまずいですか
0289nobodyさん
03/08/10 17:22ID:j1wuC9e6ム板とマルチ。
0291nobodyさん
03/08/14 14:08ID:oA+wkOB6TABの1Byteをケチりたいの?
0294山崎 渉
03/08/15 22:31ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0295nobodyさん
03/08/17 15:25ID:VoWMe2O60296あぼーん
NGNG0297______
03/08/17 15:32ID:???川o・-・)ノ <先生!こんなのがありました!
http://www.hokekyoji.com/
http://members.tripod.co.jp/hossyoji/index/
http://www.honmonji.or.jp/
http://www.maap.com/tanjoh-ji/
http://www.kuonji.jp/
http://www.butsuzou.com/jiten/sanmen.html
http://www.butsuzou.com/list1/sanmen2.html
http://www.butsuzou.com/list1/sanmen3.html
http://www.butsuzou.com/keitai/sanmen-kz.html
0298nobodyさん
03/08/19 17:06ID:???とりあえず
「固定長」のバッファをなぜかmallocした上にクリアすらせずに使うのと
関数の返り値を片っ端から捨てていくのと
入力データを長さもチェックせずにstrcpyで突っ込むのはやめて欲しい。
まあ、それを鵜呑みにしてコード書く奴も書く奴だけど。
0299nobodyさん
03/08/22 01:40ID:???元々買う気なくて立ち読みしかしてないのでナンだけど、
どこで固定長のバッファをmalloc()してた?
興味本位で探してみたけどみつけらんなかったYOu
0301nobodyさん
03/08/24 04:11ID:???0302nobodyさん
03/08/28 14:55ID:???0303nobodyさん
03/08/31 16:08ID:oQ0ZtH63配布したらアクセスどんどんくるかな?
って思っているんです。
需要ありかしら?
(今Perlでつくったやつ配ってるんですけどちょくちょく使っている人がいます)
0304303
03/08/31 16:11ID:oQ0ZtH63たしか88投稿したのは、おれだけど、多少上達してから
それは思いました。
(っつうかそいつの本のまねしてやったら友達にセキュリティやべえぞって言われたんですね・・・)
0305303
03/08/31 16:12ID:oQ0ZtH63ここは普及スレだった。。。。。。。。。。
0306nobodyさん
04/01/27 13:55ID:???0308nobodyさん
04/02/02 11:42ID:???敷居が高いとかだろ
WEBのためにC++覚える馬鹿(暇人)はいないし。
C#が普及すれば少しはCのCGI増えるかな?
0309nobodyさん
04/02/02 16:06ID:KHxdJaNyha?
0311nobodyさん
04/02/10 19:56ID:???0312nobodyさん
04/02/11 01:13ID:???Cで開発しても、そんなに時間はかからない。デバッグにしてもさほどでは
ない。開発に時間がかかるのは言語慣れしてないからだろう(漏れが Perl
でやったら Cの倍以上かかる)。
敷居が高いのは認める。関連書籍は圧倒的に少ないし。コンパイラという時点
で決して低くはない。特に初心者は大変だろう。
Webプログラミングを目的として C++覚える人というのも確かに奇特だが、C++
を覚えていれば他にツブシも効くだろう。決して損な選択ではないと思う。
0313 ◆0UMFbJB2oM
04/02/12 18:21ID:pt0vOHBR0315nobodyさん
04/02/17 04:40ID:???> 同時にアクセスがあった場合、同一名称の環境変数は、それぞれブラウザ
> ごとに違う値を保持するのかな???
POSTなり GETなりのリクエストがあってはじめて CGIが起動されるわけだから、起動されたプロセスで
「俺はどれだ?」なんて事を留意する必要は無い。ただ単一動作をするのみ。
いくつものブラウザからいくつものリクエストをされた場合は、それぞれ個別にプロセスが起動される
だけだから、その時その時の環境変数を読めばよい。HTTPデーモンは、そういう風にしてくれるはずだ。
・・・と、偉そうに書いたが、間違ってたら激怒キボンヌ。
0316nobodyさん
04/02/17 13:36ID:???同じCGIプログラムでも、Request毎に違うプロセスが起動されて
そのRequestの発行したブラウザの情報が環境変数に設定れるよん
0317nobodyさん
04/02/17 17:47ID:???0319nobodyさん
04/02/19 13:48ID:???0320nobodyさん
04/02/19 18:08ID:???0321nobodyさん
04/02/19 22:47ID:???0323nobodyさん
04/02/20 00:10ID:???0324nobodyさん
04/02/20 01:29ID:???ありが�d
CGIが重い重いと言われてるので、
どうせCならapacheモジュールにしちゃえと思ってて、
WebProgだと思ったけどunix板ですか…
ちょっとこわひ…
0325nobodyさん
04/02/20 03:16ID:???「彼女」「イブ」等のキーワードのスレを探せ。「雑談」でもいいが。
0328nobodyさん
04/02/22 04:18ID:???%だったら続く2文字をテーブル変換するって方法使ってるよ。
テーブルは上の桁用と下の桁用をそれぞれ作って足し算。
0329nobodyさん
04/03/05 04:48ID:???0330nobodyさん
04/03/06 19:57ID:???unsigned char n,h,l,const t[256]={…,0,1,…,8,9,…,10,11,…14,15,…,10,11,…,14,15,…}
if(('%'==*s)&&(-1!=(h=t[*(s+1)]))&&(-1!=(l=t[*(s+2)]))) { *d++=(h<<4)|l; s+=3; } else …
0331nobodyさん
04/03/11 00:27ID:???socket使って2ちゃんねるのトップを取得してタグコピーして表示するとか。
この場合とくに意味は無いけど、面白い使い方をしている例希望。
0332nobodyさん
04/03/11 00:58ID:???0333nobodyさん
04/03/11 01:02ID:???0335nobodyさん
04/03/11 09:01ID:???インタプリタみたいな事をやるよりは速いかも、程度しか思いつかないが・・・。
とか言う漏れも C で CGI やってるわけだが。
だって Perl とか PHP で書くと、キレイなソースに出来ないんだもん・・・。<己れのスキル不足棚上げ
0336nobodyさん
04/03/11 10:52ID:???■ このスレッドは過去ログ倉庫に格納されています