トップページ⇒php
529コメント163KB

C言語のCGIを語りつつ普及するスレ

■ このスレッドは過去ログ倉庫に格納されています
0001somebodyさん03/03/23 13:20ID:???
C言語で書かれたCGIってなかなかイイもの見つかりませんよね。

前Cでかかれた掲示板を見かけたんですけど、なんかタグ用の処理が行われていないらしくて、グロ画像やエロ画像なんて
貼りたい放題でしたよ・・。わたしなんて<xmp>タグを貼りかけましたよ・・・

それはどうでもイイとしてKENTさんのCGIみたいに高機能で手軽なCGIのC言語版みたいなのがあったらなぁなんて思ったことありませんか?
このスレではそんなCGIについて語って、CでCGIの考えを普及していきたいです。
0322nobodyさん04/02/19 23:29ID:???
>>321
Linux板かUNIX板
0323nobodyさん04/02/20 00:10ID:???
一番詳しそうな人が見てそうなのはunix板のapacheスレ
0324nobodyさん04/02/20 01:29ID:???
>>322-323
ありが�d

CGIが重い重いと言われてるので、
どうせCならapacheモジュールにしちゃえと思ってて、
WebProgだと思ったけどunix板ですか…

ちょっとこわひ…
0325nobodyさん04/02/20 03:16ID:???
unix板を開いたら
「彼女」「イブ」等のキーワードのスレを探せ。「雑談」でもいいが。
0326nobodyさん04/02/20 06:01ID:???
>>325
重ね重ね産休
でも、聞く前になんとなく自己解決

apacheモジュールは軽すぎますなー
0327nobodyさん04/02/20 09:57ID:???
>>325
ヽ( ・∀・)ノ ウンコー
0328nobodyさん04/02/22 04:18ID:???
おれはCでURIデコードするときは、
%だったら続く2文字をテーブル変換するって方法使ってるよ。
テーブルは上の桁用と下の桁用をそれぞれ作って足し算。
0329nobodyさん04/03/05 04:48ID:???
h o s h u
0330nobodyさん04/03/06 19:57ID:???
7年前に書いたデコードルーティンから抜粋
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:???
EXEならではの利点があるはず。
socket使って2ちゃんねるのトップを取得してタグコピーして表示するとか。
この場合とくに意味は無いけど、面白い使い方をしている例希望。
0332nobodyさん04/03/11 00:58ID:???
EXEならではの利点
0333nobodyさん04/03/11 01:02ID:???
まずは、"CGI"って何なのかを理解してくれ
0334nobodyさん04/03/11 01:04ID:???
>>331
ドザ氏ね
0335nobodyさん04/03/11 09:01ID:???
なんだ EXE ならではの利点って。釣りか?
インタプリタみたいな事をやるよりは速いかも、程度しか思いつかないが・・・。

とか言う漏れも C で CGI やってるわけだが。
だって Perl とか PHP で書くと、キレイなソースに出来ないんだもん・・・。<己れのスキル不足棚上げ
0336nobodyさん04/03/11 10:52ID:???
慣れだ、慣れ。
0337nobodyさん04/03/19 23:07ID:wAGafw57
>>303
ttp://c.toshinari.net/cgi/bbs/mtbbs2/
これだね。
0338nobodyさん04/04/05 21:18ID:???
俺はC++で作ってるが、char *get_value("name");とかchar *get_cookievalue("name");といったのを
ひとまとめにしたクラスを作った。

まだマルチパートのPOSTに対応していない・・・
0339nobodyさん04/04/11 13:58ID:???
おーい。どこかに簡単なサンプルというかCGIに特化した講座はないかい?
何からはじめたらいいのかわかんないよ。ググリ疲れました・・・。
0340nobodyさん04/04/11 14:10ID:???
"CGI"とは何なのか知っていれば
サンプルも何も無いと思うけど。
0341nobodyさん04/04/11 14:57ID:???
>>339
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/
0342nobodyさん04/04/12 05:34ID:???
>>341
ありがとう!
034391804/04/26 19:58ID:???
>>335
Cならではというよりバイナリならではのほうが大きいのでは?

1、データベースなんかを作ったとき処理が速い。
2、大抵のCGI対応のサーバーなら使える。インタプリンタよりも多く対応(多分)。
3、インタプリンタはクロスサイトスクリプティングの危険があるが、バイナリなのでそれは無いっぽい。

そもそも、CGIの元祖はC言語世代らしい。
0344nobodyさん04/05/07 18:55ID:???
ここの住人て

C/C++ CGIスレッド
http://pc5.2ch.net/test/read.cgi/php/1077753522/l50

と100%かぶってる気もする
0345nobodyさん04/05/09 13:54ID:???
>338
っていうかcookieは全部js操作でいい
0346nobodyさん04/05/09 17:57ID:???
( ´,_ゝ`)プッ
0347nobodyさん04/05/18 05:37ID:???
ところで多少は普及したのだろうか?
0348nobodyさん04/05/18 21:17ID:???
サッパリサッパリ
0349nobodyさん04/05/25 05:52ID:8qS/bgdw
フォームのデータをデコードするところで、
なんで16をかけたり、4ビットシフトしたりするのかが
わからないんです。

あれはいったい何をしてるんでしょう。
ググってもググっても何も出てこないので。。。。
0350nobodyさん04/05/25 06:22ID:???
'%23'を'#'に変換したりとかの話なら、URLエンコード/デコード。
0351nobodyさん04/05/25 16:56ID:???
>>349
ググり方が足りないだけっちょ。

ttp://sometime.minidns.net/~ccgi/decode_encode.html
より引用

> "%xy"という3バイトの文字列を16進数に変換する処理としては、
> 2バイト目を0x10倍(0x10をかけるか、4ビット左シフト)して3バイト
> 目を加える、という処理方法が有名ですが、
0352nobodyさん04/05/26 01:19ID:BPDOKhgc
>>351
サンクスです。
ググり方が足りない。。。。
反省します。。。。。
0353nobodyさん04/05/30 11:50ID:AsPEp7PV
c++でcgi作ってます。コンパイルしてそのままcgiとして動かしていますが、
このようにweb用cgiを作るための便利な定番ライブラリって何かありますか?
0354nobodyさん04/05/30 13:23ID:???
洩れも調べ中
c++ならcgiccってのが上のほうに紹介あった気がする。
http://mm.apache.or.jp/pipermail/apache00-01/2000-December/002076.html

0355nobodyさん04/05/30 13:41ID:???
コンパイルしてからUPしても動かないときがあるよね。
まいっちんぐ
0356nobodyさん04/05/30 21:39ID:???
http://tazthecat.net/~isaac/cgixx/
cgixx - BSD Licenseだそうだ。これから試してみるべ。
0357nobodyさん04/05/30 22:13ID:???
cygwin->freeBSD用のクロスコンパイラの作り方をまとめました。
aaacafeで使えます。
D言語用に作ったのですが、c,c++も動きます。c,c++だけにしたければオプションでそうできます。
http://www.wikiroom.com/sakurai/?freebsd%A5%AF%A5%ED%A5%B9%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB
参考にしてください。
どっかデッカイデータ置いていいところあればバイナリでも配布できる気もするけど、
自分はもってないので、がんばってインストールしてみてください。
もうちょっと、手軽にクロスコンパイラが手に入れば、なぁ。
Linux版も似たような感じで作れると思いますがまだやっていません。
では。
0358nobodyさん04/05/30 23:37ID:???
そう、クロスコンパイラをバイナリで配布できればいいんだ。
どうやったら、いいのか考えたら。
1.どっかデッカイデータを入れさせてくれるサイトを探す。Vectorとか。
  問題はバイナリデータをメールで送るんだったような記憶がある。
  規約読めってかんじだな。
2.P2Pで配信しちゃう。問題はちゃんと検索に引っかかってくれるかどうか。
  やったことないのでわからん。
3.ソースフォージみたいなのに登録しておかせてもらう。
  なんか、敷居高そうなのが問題ありかなぁ。

あと、ライセンスとかどうなるんだか、よーわからん。cygwinで作ったクロスコンパイラ
のライセンスはどうしたらいいんだろうって問題もある。
この辺の問題をクリアしてあると、だいぶ普及するんじゃないかなぁ。
0359nobodyさん04/05/31 04:22ID:???
>>357-358
ぐっじょーぶ!!

ソースアップしてコンパイル結果のバイナリ、ダウソできるような
鯖たてたらどうだろ?自分で環境用意できない人には重宝するかも。

036035704/05/31 20:55ID:???
>>359
それは危険だと思います。aaacafeはgccをcgiで動かせるそうですが。
危険を無視すれば面白いですよね。会員認証付きで、作ることになりますね。
アクティブXでeclipseをブラウザに取り込んで、cvsに入って、ぽいぽいと。


クロスコンパイラのバイナリ配信を可能にしました。
http://www.wikiroom.com/sakurai/?freebsd%A5%AF%A5%ED%A5%B9%A5%B3%A5%F3%A5%D1%A5%A4%A5%E9%A5%D0%A5%A4%A5%CA%A5%EA
c,c++,dをfreebsd用にコンパイルできます。
linux用も作ろうと思いますが先人の知恵があるのでこれ理解してからにしようと思っていますが。

インストール手順もずっと楽になりました。
ただ、これで、問題のあるプログラムは作らないでくださいね。
0361nobodyさん04/05/31 21:54ID:???
CでWikiクローン作ってるものだが、思った以上に難しいな。
036235704/06/01 08:59ID:???
CでWikiクローンですか、、、。名前は、Cikiですかねぇ。
Dならあるですぞ。Diki。
036335704/06/01 09:01ID:???
わぁ、すでにあったぁ。
http://ciki.nostdal.net/cgi-bin/ciki
C++でできてるみたいですね。
036436004/06/02 09:37ID:???
Eclipseうんぬんは、ちょっと妄想入ってますな。
でも、やっぱり危険だと思うし、自分で用意できない。
間違えて、無限ループされても困る。
wikiライクなエディタ付きwebベース開発環境を妄想してます。
能力がついて来てないのですが。
とりあえず、perlでできる事がdでもできてしまう
環境を作ることには意義があると思っています。
0365nobodyさん04/06/05 01:01ID:???
CGIを作るならC++の方が適しているんでしょ?
なんとなくそう思っただけです。
036636004/06/05 17:03ID:???
>>365
STLあたり使えば、文字列操作が楽でしょうからねぇ。と、私も思っただけ。
0367nobodyさん04/06/08 00:25ID:???
フォーム入力の処理はヌル終端文字列の方が楽だったよ
データ構造にはstd::list使ったけど
0368nobodyさん04/06/08 23:58ID:nLqW4woP
PHPのソースからbase64encode関数やらsplit関数を切り出して使ってる俺はアホですか?
0369nobodyさん04/06/09 00:14ID:???
普通
0370nobodyさん04/06/09 11:22ID:???
yahooのシステムは主にCを使ってるらしいですね。
なんかメリットあるから使ってるんでしょうかね。
0371nobodyさん04/06/09 23:29ID:???
とりあえずバイナリならソースが漏れないし触れる人間が多いからじゃない?
要件がはっきりしてるからこそ成せる技なんだろうけど。
0372nobodyさん04/06/10 02:01ID:???
>C言語は、データベースを最も高速にアクセスできます
>http://ash.jp/db/

この言葉を100%信用しても大丈夫なのかな。

0373nobodyさん04/06/10 14:20ID:???
うーむ。ただのCGIでコネクションをプーリングしないのと、Javaでコネクションをプーリングする、、、、。
どちらが速いんでしょうな。と思うD房でした。リンク先も読まずに、適当な発言。
0374nobodyさん04/06/11 19:53ID:???
実際問題、鯖への負荷はどうなの?
0375nobodyさん04/06/12 00:29ID:???
>>372
そこ見てみたけど、言葉使いがモニョモニョしてるな。本人は分かってるんだろうけど、
分かってない人のために書いたら、ちょっと不思議な文章になりました、って感じがする。

Cで高速にアクセス出来るのは確かだが、ヘタレなコードなら遅くなるし、最も高速に
アクセスしたければアセンブラで組むだろう(実用的な意味はほとんど無いが)。

だから、厳密に言えば「最も高速」イコール Cではないのだが、一般的に言えば
「そう言って差し支えない」レベルの話だ、ということだろう。
0376nobodyさん04/06/12 01:10ID:???
現状ではApacheモジュールがWeb至上最速&最低負荷でしょう。
フォーム受け取り系で使ってるが恐ろしく速い。
ブラウザ上の感触が10行くらいのプレーンテキストを読んだ感じに似てる。
おなじ処理をC++/CGIで試したがやはり最初のコストがでかいのでモタつく。
0377nobodyさん04/07/06 06:41ID:???
FastCGIは?
0378nobodyさん04/08/09 18:38ID:uDC/dB7t
保守あげ
0379nobodyさん04/09/07 08:23ID:???
要するに、C言語でCGI作ろうとした場合、perlのcgi-lib.pl
(CGI.pm)にあたるものがライブラリで用意されてないのが
痛い。あと、jcode.pl(Jcode.pm)。
定番のcgi.cとかjcode.cてないんでしょうか。
0380nobodyさん04/09/07 08:31ID:???
>>379
>ライブラリで用意されてないのが痛い。

藻前が探索能力がないのが痛い。

CGIのライブラリも日本語変換のライブラリもググれば出てくる。
それにCでCGIを作る様なヤツは、自分専用CGIライブラリくらい作る。
0381nobodyさん04/09/07 09:01ID:???
Cは豊富にあるほうだと思うけどな。
たいていなんでも揃ってるし。
探せないやつが痛いのは間違いない!
0382nobodyさん04/09/07 09:03ID:???
>>380
即レス多謝です。ありますた。orz
cgihtml Documentation(ttp://www.eekim.com/software/cgihtml/cgihtml.html)
Ken Lunde氏jcode.c(ftp://ftp.ora.com/published/oreilly/nutshell/ujip/src/)
(参考: Cgihtmlのsourcesを読む(ttp://www.adminteachers.com/hdezaki/cgi-lab/page21.html))
できるかどうか分からないけど、検索CGI作ってみまつ。
0383nobodyさん04/09/07 09:06ID:???
>>381
ども、結構、あるんですね。
C/C++言語によるCGIプログラミングの設計入門(ttp://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/)
が参考になりそう。よし、やるど。
0384上級者04/09/07 14:32ID:BeqquvBt
PHP言語を使って。
ブラウザでLINUXPASSWORDを変えたいのですが
どうしたらいいのでしょうか?

LINKX シャドーパスワードなどあって
複雑でわかりません・・・

どうか教えてください
お願いします
0385nobodyさん04/09/07 14:46ID:???
>>384 スレタイ読み直せ


釣られた?
0386nobodyさん04/09/07 15:54ID:???
>>385
彼はプロです。
0387nobodyさん04/09/07 16:10ID:???
>>384
webminでhttps://localhost:10000/にアクセス。
以上。
0388nobodyさん04/09/07 16:29ID:???
>>384

さすがは上級者だ。
しかし本当のプロならもっと獲物のたくさんいる板で釣る。
0389nobodyさん04/09/07 16:34ID:???
CではPerl見たいな文字列操作が面倒すぎだな。
C++になるとまだマシだけど。C++用の便利なライブラリって知らない?
正規表現とかあるんだろ
0390nobodyさん04/09/08 00:54ID:???
>>389
面倒なら自作すればいいじゃなーい。
0391nobodyさん04/09/08 04:11ID:???
>>389
boost知らないの?
0392nobodyさん04/09/08 09:12ID:???
>>389
dyaregexp.hはboostより軽いちゅうわな。
ttp://hp.vector.co.jp/authors/VA028375/junkbox/dyaregexp.html
0393nobodyさん04/09/08 10:37ID:???
入力はUTF-8のみ有効、それ以外は無視。
0394nobodyさん04/09/08 12:24ID:???
は?
0395nobodyさん04/09/08 15:14ID:???
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&ie=shift_jis&q=dyaregexp
この知名度はヤバイ
0396nobodyさん04/09/08 15:18ID:???
http://www.vector.co.jp/authors
0397nobodyさん04/09/08 23:56ID:???
っていうかC++でCGI作るならこれが基本じゃないの?
http://www.cgicc.org/
0398nobodyさん04/11/08 18:55:43ID:???
あゃしぃ人を発見
ttp://labo.cherrybooks.net/
0399nobodyさん04/11/09 08:58:35ID:???
宣伝を発見
0400nobodyさん04/11/13 03:53:32ID:???
宣伝の発見者を発見
0401nobodyさん04/11/22 14:44:59ID:???
宣伝の発見者の発見者を発見
0402nobodyさん04/11/22 21:38:13ID:???
>>401
あのね、それ皆、書こうと思って遠慮してたんだけど・・・
お詫びにネタ振れよ。
040340104/11/22 23:52:40ID:???
>>402

gomen.
ima, server karadakara, nihonngo nyuuryoku dekinai...
0404nobodyさん04/11/23 00:02:35ID:???
>403
仕事しろ!!
0405nobodyさん04/12/14 17:59:04ID:upKknTNA
>>401
宣伝の発見者の発見者の発見者を発見
040640204/12/14 23:08:12ID:???
サーバーに日本語入力入れてしまいました。

いいのかな…
0407nobodyさん04/12/15 01:51:06ID:???
いいよ。サーバーにX入れる時代だし
0408nobodyさん04/12/16 23:30:11ID:???
自宅サーバにX入れてます
Xサーバ
0409nobodyさん04/12/17 01:56:16ID:???
それよりDistcc入れて分散コンパイルに……(^^;;;
0410nobodyさん04/12/27 15:06:04ID:2ZZk8VkA
WinXPでコンパったCGIがFreeBSDで動きません
0411nobodyさん04/12/27 17:17:19ID:???
つまらんネタだな
0412nobodyさん04/12/29 22:02:06ID:???
>>410
つ[Perl]

お前さん、Cはやめておけ
0413nobodyさん04/12/31 11:29:26ID:???
>>412
WINアプリがUNIXで動かないのは知ってるんですけど、なんとかならないですかね…
クロスコンパイラは都市伝説、PCはPen200、64MBのノートだからUNIX系OSはボツ…
0414nobodyさん04/12/31 16:55:12ID:???
Pentium200 64MBって、ちょっと前までは「PC-UNIXで再活用」の代表みたいなスペックだけど。
GUIは苦しいかもしれないけどね。
0415nobodyさん04/12/31 17:27:43ID:???
X使わなきゃ全然大丈夫でそ
0416nobodyさん05/01/02 13:12:22ID:???
>クロスコンパイラは都市伝説
藻前はPerlでも使っとけ
0417nobodyさん05/01/02 15:32:49ID:???
ソースありますか?
0418nobodyさん05/01/02 22:40:11ID:???
http://tinyurl.com/23y5e
0419nobodyさん05/01/02 23:07:18ID:???
cssのクラス名がふざけてる
0420nobodyさん05/01/05 12:39:03ID:???
>>413
cygwin
0421nobodyさん05/01/20 11:30:37ID:???
Cを昔から使ってたので最近PERLの掲示板なんかを自作しようと
環境は自鯖仕様でWin2K+Apache2+VisualC++7

GUIならではの開発環境でデバッグが簡単になる方法ってあるんですかね?
自分はVC6使ってたのでVC7の.netによる恩恵がよるわかりません;;
実行ファイルをCGIとして動かしてVCのデバッグトレース機能なんてできます?
用は実行ファイルの出力先にttp://hoge.com/abc.exeというのをGUIでデバックとか・・
UNIXは知らんのですがWinsockを利用して細かいことしようとすると
画面出力で print "ENV= なんてしてるもので作業効率最悪。

どっちかとVCスレの質問かもしれませんがすまそ・・
あと上げてすんま孫


■ このスレッドは過去ログ倉庫に格納されています