- 1 名前:somebodyさん mailto:sage [03/03/23 13:20 ID:???]
- C言語で書かれたCGIってなかなかイイもの見つかりませんよね。
前Cでかかれた掲示板を見かけたんですけど、なんかタグ用の処理が行われていないらしくて、グロ画像やエロ画像なんて 貼りたい放題でしたよ・・。わたしなんて<xmp>タグを貼りかけましたよ・・・ それはどうでもイイとしてKENTさんのCGIみたいに高機能で手軽なCGIのC言語版みたいなのがあったらなぁなんて思ったことありませんか? このスレではそんなCGIについて語って、CでCGIの考えを普及していきたいです。
- 2 名前:nobodyさん [03/03/23 13:22 ID:sylBhDVS]
- 2get
- 3 名前:nobodyさん [03/03/23 13:33 ID:sylBhDVS]
- サーバー管理人もシェルを開放するのを敬遠するよなぁ
- 4 名前:nobodyさん mailto:sage [03/03/23 13:34 ID:???]
- 自分が管理人だから何も問題ない。
- 5 名前:nobodyさん [03/03/23 13:36 ID:sylBhDVS]
- >>4
「かぁ〜くぃ〜」とあられちゃん風味で言ってみるテスト
- 6 名前:nobodyさん mailto:sage [03/03/23 13:37 ID:???]
- 掲示板だったらCで書くメリットないしぃ〜
- 7 名前:nobodyさん [03/03/23 13:40 ID:Kt/FP1fC]
- 最近人生がおもしろくない。
そう思いのあなた! www5e.biglobe.ne.jp/~rgxt5nl/index.htmlのページをお試しください! 100種類のタダで遊べるゲームに、 おもしろいパクリ物を集めたコーナーや、 管理人がすぐに素材にしてくれる素材掲示板 ほかにも、2ちゃん掲示板もありますよ! 自作フラッシュもあります。 とにかくいろんなコンテンツが豊富です! 常連になってくれる人大募集!
- 8 名前:nobodyさん [03/03/23 13:41 ID:sylBhDVS]
- >>6書き込み数や掲示板の内容にも因る
- 9 名前:nobodyさん mailto:sage [03/03/23 14:16 ID:???]
- スキンを使えるようにしてください、と言われて凹むわけだが
- 10 名前:nobodyさん [03/03/23 14:50 ID:F5JRnBB1]
- デコードのしかたを教えてください。
分かりやすく親切にね。 ↓のdataにとりあえずいろいろ入るようにしました。 それからどうするの? /* 関数のプロトタイプ宣言 */ int decode(); /*グローバル変数の宣言*/ char data[1024];/*出力文字*/ /* データ取得処理 */ int decode() { /* GET/POST 取得 */ if(strlen(getenv("REQUEST_METHOD")) == 3) { /* GET処理 */ strcpy(data,getenv("QUERY_STRING")); } else { /* POST処理 */ fgets(data,sizeof(data),stdin); } return 0; } 以下省略
- 11 名前:nobodyさん mailto:testsage [03/03/23 16:23 ID:???]
- test
- 12 名前:nobodyさん mailto:ssage [03/03/23 16:23 ID:???]
- てえst
- 13 名前:nobodyさん mailto:sage [03/03/23 16:24 ID:???]
- あbcでfgひjklmn
- 14 名前:nobodyさん mailto:ごめん誤爆 [03/03/23 16:24 ID:???]
- ごめんが爆
- 15 名前:nobodyさん mailto:sage [03/03/23 17:14 ID:???]
- if(strlen(getenv("REQUEST_METHOD")) == 3)
これでGETだと判断するのかよ。すごいなお前。
- 16 名前:somebody mailto:age [03/03/23 18:13 ID:???]
- >>15
それは尊敬してるのかいっ?(笑)
- 17 名前:nobodyさん [03/03/23 18:16 ID:yv3NRqsM]
- www.agemasukudasai.com/bloom/
- 18 名前:somebody mailto:age [03/03/24 02:52 ID:???]
- >>17
開かない(涙)
- 19 名前:anybody [03/03/24 09:14 ID:0p5nPuub]
- KENTに頼んでC言語でつくってもらうしかないな・・・
>>1
- 20 名前:nobodyさん mailto:sage [03/03/25 00:48 ID:???]
- KENT が C なんか書けるわけないに1ペリカ
- 21 名前:nobodyさん mailto:sage [03/03/25 02:14 ID:???]
- 可変長文字列型なstring型のあるPASCALなら結構戦える気もする。
- 22 名前:コピペ mailto:sage [03/03/25 04:26 ID:???]
- //---- %で始まる特殊記号を変換する関数
void Escape( char* src ) { char* dst; for( dst=src; *src; src++ ){ if( *src == '%' ){ *dst++ = (AtoH(*++src)<<4) + AtoH(*++src); }else if( *src == '+' ){ *dst++ = ' '; }else{ *dst++ = *src; } } *dst++ = '\0'; }
- 23 名前:nobodyさん mailto:sage [03/03/25 11:02 ID:???]
- >>22
なぁ、出力のない変換関数なんてただのゴミではないだろうか?
- 24 名前:nobodyさん mailto:sage [03/03/25 21:00 ID:???]
- >>22
これを書いた人はstrtolという標準関数を知らないのかな。 変換前の文字列が%で終わっていたら危ないね。 あとswitchを使った方が見やすくなると思う。 どうでもいいけど、Escapeだと逆のような気が・・・ >>23 え?
- 25 名前:yabukita [03/03/26 03:05 ID:0eTcQCDY]
- >>20
KENTはPerlだけか?
- 26 名前:nobodyさん mailto:sage [03/03/26 04:06 ID:???]
- おそらく。
- 27 名前:anybody mailto:yakibuta [03/03/26 13:39 ID:???]
- >>26
漏れもPerl関連でKENTみたいに本を出したいのですが。
- 28 名前:yabukita [03/03/26 13:41 ID:6XIqCMZ4]
- >>27
適当にがんばってください。 C言語でCGIを普及するにはまだまだだな。
- 29 名前:anybody mailto:yakibuta [03/03/26 13:42 ID:???]
- >>28
どうすればC言語CGIにみなの関心がいくか考える必要がある。 KENTみたいなスクリプトをC言語で書けば注目をあびるだろう。
- 30 名前:yabukita [03/03/26 13:43 ID:6XIqCMZ4]
- >>29
2ch風味な掲示板を是非C言語で作ってみたいですな。
- 31 名前:anybody mailto:yakibuta [03/03/26 13:45 ID:???]
- C言語でCGIを動かせる無料鯖ってどこにあります?
- 32 名前:yabukita [03/03/26 13:46 ID:6XIqCMZ4]
- >>31
www.tok2.com/ とか?(telnetOKよ) あとXreaもC言語のCGIがうごくが事前にLinux環境で コンパイルする必要がありけり
- 33 名前:nobodyさん mailto:sage [03/03/26 16:01 ID:???]
- >>32
Linux環境コンパイルですが、 Winで、Borland C++ Compiler 5.5.1でコンパイルではダメかな?
- 34 名前:nobodyさん mailto:sage [03/03/26 16:57 ID:???]
- コンパイル(+リンク)って何をやってるか分かってればそんな質問は....
- 35 名前:nobodyさん mailto:sage [03/03/26 17:15 ID:???]
- >>34
どうにかしてクロスコンパイルするんじゃないの?w
- 36 名前:nobodyさん mailto: [03/03/26 20:35 ID:???]
- 事前にコンパイルするなら、スタティックリンクしておけば大抵のところでは(C言語で書いたプログラムが)使えそうな気がする。
iswebはSparc+Solarisだったかな。性善説サーバでコンパイルしたものをアップしてみようかな。
- 37 名前:nobodyさん mailto:sage [03/03/26 20:46 ID:???]
- サーバー上でコンパイルできなければC言語が使えるとは言えないよね。
コンパイルしたものはもうCとは無関係だし。
- 38 名前:bloom [03/03/26 20:53 ID:C4vNyXIc]
- www.agemasukudasai.com/bloom/
- 39 名前:nobodyさん mailto:sage [03/03/26 21:01 ID:???]
- 性善説サーバーは64bitなんじゃらだったからー??
(知らないのに勘でしゃべる)
- 40 名前:nobodyさん mailto:sage [03/03/26 21:02 ID:???]
- >>37
>サーバー上でコンパイルできなければC言語が使えるとは言えないよね。 そんなこと無いと思うよ。
- 41 名前:nobodyさん mailto:sage [03/03/26 21:23 ID:???]
- あまり関係ないけど、
実は、、ExecCGIが有効か無効か、しか問題にならない。 PerlでCGIが動くのなら、CGIが使えるっていうことだから、 #!/...形式以外の物も使える、つまり、C言語で書かれた物をコンパイルしたもの (バイナリ)もCGIとして動くということになる。
- 42 名前:nobodyさん mailto:sage [03/03/26 21:27 ID:???]
- バイナリが動くか動かないかは分かりきったこと>>41なんだから、
そこであえてC言語が使えると書くのは、Cコンパイラーが使えます、 という事を意味する。はず。
- 43 名前:nobodyさん mailto:sage [03/03/26 21:28 ID:???]
- >コンパイラー
コンパイラ
- 44 名前:nobodyさん mailto:sage [03/03/26 22:11 ID:???]
- なんだこのスレは。
- 45 名前:nobodyさん mailto:sage [03/03/26 22:13 ID:???]
- >>44
同意。 しょうもないこと言ってるのはほっといて実装技法の話しようや。
- 46 名前:nobodyさん mailto:sage [03/03/26 22:16 ID:???]
- せめてC++にしてSTL使おうよ。。。
- 47 名前:nobodyさん mailto:sage [03/03/26 22:17 ID:???]
- >>46
少なくともstring位はほしいよなぁ。
- 48 名前:nobodyさん mailto:sage [03/03/26 22:19 ID:???]
- >>47
あとmap
- 49 名前:nobodyさん mailto:sage [03/03/26 22:36 ID:???]
- CでCGIの書籍があったよな。たしか便利なライブラリがあって、
今更デコードだなんだからやらなくてもいいはずだが。
- 50 名前:nobodyさん mailto:sage [03/03/26 22:38 ID:???]
- >>49
ライブラリ厨、爆誕!
- 51 名前:nobodyさん mailto:sage [03/03/26 22:40 ID:???]
- >>50
C標準ライブラリやSTLはスルーしてどうして俺だけ・・・
- 52 名前:nobodyさん mailto:sage [03/03/26 22:42 ID:???]
- >>51
そういやそうだな。スマソ。
- 53 名前:nobodyさん mailto:sage [03/03/26 23:07 ID:???]
- じゃあC/C++でCGIを語るスレってことで
- 54 名前:nobodyさん mailto:sage [03/03/26 23:09 ID:???]
- >>53
Pascalに謝れ。
- 55 名前:nobodyさん mailto:sage [03/03/26 23:20 ID:???]
- Pascalよ、斬り捨ててごめん。
じゃ、改めてC/C++でCGIを語るスレってことで
- 56 名前:nobodyさん mailto:sage [03/03/26 23:24 ID:???]
- >>55
なめんなこら!コンパイル済み実行ファイルなCGIを語りつつ普及・・・って普及するスレってなんだよ・・・。 Windows用ならGUIで設定とかできるとおもしろいなとか思ってみたり。
- 57 名前:nobodyさん mailto:sage [03/03/26 23:37 ID:???]
- 設定って?CGI用の設定ファイルをGUIアプリに吐かせると言う意味?
それなら根本的にCGIとは関係ないと思うけど。 単にテキスト出力するプログラム作ればいいだけだから。
- 58 名前:nobodyさん mailto:sage [03/03/26 23:42 ID:???]
- >>57
普及するスレとか言っちゃう奴に理解してもらおうと思った俺がバカだった。
- 59 名前:nobodyさん mailto:sage [03/03/26 23:52 ID:???]
- ブラウザでHTMLフォーム表示したってGUIだしな。
Windows用ならGUIで、って何を指してるのかがわからん。
- 60 名前:nobodyさん mailto:sage [03/03/27 00:19 ID:???]
- テキストブラウザで表示したらGUIじゃないぞ。
>>59 GUIの設定ツールをつくるってことじゃない?対象がCで書かれている必用はないけど。
- 61 名前:nobodyさん mailto:sage [03/03/27 00:21 ID:???]
- >>60
キャラクタで構成されたGUIってのも存在すると思うが。
- 62 名前:nobodyさん mailto:sage [03/03/27 00:21 ID:???]
- >>60
>テキストブラウザで表示したらGUIじゃないぞ。 CUIのことよく分かってない予感。
- 63 名前:nobodyさん mailto:sage [03/03/27 00:26 ID:???]
- >>61
どこがグラフィカル?
- 64 名前:nobodyさん mailto:sage [03/03/27 01:05 ID:???]
- >>63
***すれ立てるまでもない質問はここで 第34刷*** pc2.2ch.net/test/read.cgi/tech/1048677915/l50 その話はこっちで現在継続中。 なんでわざわざ移動して質問したのかは謎。
- 65 名前:nobodyさん mailto:sage [03/03/27 01:27 ID:???]
- >>GUIで設定
言い出しっぺの>>56が説明もせずにいなくなったわけだが
- 66 名前:somebody mailto:hage [03/03/27 17:30 ID:???]
- ライブラリを使用ないし使用を示唆するような香具師へ
>>49 もちろんライブラリはあるなら使ったほうがよい。 Butもし、なんもなしでアドリブでつくれっていわれたときに 「ぼくちゃんライブラリがないとつくれましぇ〜ん」 なんてことにならずに独力ですべてつくれるようにしておきたいんだYO。
- 67 名前:nobodyさん mailto:sage [03/03/27 17:32 ID:???]
- >>66
お前、とっくに終わった話題をトレースして何が楽しい?
- 68 名前:nobodyさん mailto:sage [03/03/27 17:36 ID:???]
- >>66
ならこのスレと関係ないから一人でひっそりとC標準ライブラリでもSTLでも好きなの作ってれや。 このスレはどうでもいいことに食いついて全然話が進まないな。
- 69 名前:fusianasan mailto:hage [03/03/27 17:36 ID:???]
- ポケモンってC言語でつくれますか?
GBDKでつくれますか? すれ違いならいいんです。ほんとごめんなさい。 フシアナサンってだれですか?
- 70 名前:nobodyさん mailto:sage [03/03/27 17:38 ID:???]
- >GBDK
Gaki Bakari Dana, Koko.
- 71 名前:fusianasan mailto:hage [03/03/27 17:38 ID:???]
- >>67
66です。すまむこ。このネタおわってたのね。 ところでふしあなさんってきかなくなったんですね。
- 72 名前:nobodyさん mailto:sage [03/03/27 17:38 ID:???]
- >>69
できないことはない、できればアセンブラの方が良いと思うが板違いだと思われ。
- 73 名前:fusianasan mailto:hage [03/03/27 17:43 ID:???]
- >>72
ありがとう。先キュー。OK牧場
- 74 名前:fusianasan mailto:hage [03/03/27 18:08 ID:???]
- CとC++の書き方を同じプログラム内で書くことはできますか?
- 75 名前:nobodyさん mailto:sage [03/03/27 18:09 ID:???]
- ただのC/C++質問スレになってる(;´Д`)
- 76 名前:nobodyさん mailto:sage [03/03/27 18:10 ID:???]
- >>74
統一しとけ。な。
- 77 名前:nobodyさん mailto:sage [03/03/29 17:51 ID:???]
- そんなことよりperlのBモジュールから吐き出されるCのコードはなんとかならんのか。
hello,world がなんで100KBになんだよ。
- 78 名前:初心者 mailto:age [03/03/31 22:24 ID:???]
- 実験でくだらないCGIをCで書いてみたんだけど
使用したコンパイラが、な、なんとLSI C-86試食版なんすよ!! しかし16Bitでカナーリ時代遅れの予感、、 誰かWindowsで動作する32Bitコードを吐き出す フリーのコンパイラって知りませんか?
- 79 名前:nobodyさん mailto:sage [03/03/31 22:30 ID:???]
- >>78
bcc
- 80 名前:nobodyさん mailto:sage [03/03/31 22:31 ID:???]
- >>78
ネタ質問でageんな。
- 81 名前:nobodyさん mailto:sage [03/03/31 22:38 ID:???]
- >>78
gcc は置いといて、 GNUライセンスじゃない、(できれば、BSDライセンスの) 正規表現ライブラリ無いですかね。
- 82 名前:nobodyさん mailto:sage [03/03/31 22:48 ID:???]
- >>81
LGNUライセンスって知ってる?
- 83 名前:初心者 mailto:age [03/03/31 22:54 ID:???]
- >>80
笑っちゃうかもしれないけど本当の話なんだす・・・ 最近自家鯖の実験始めて、目標は自作CGIを作ることだが どうもPerlってソースの見た目から受け入れられなくて 昔ちょっとだけかじったことのあるC言語でも出来ると聞いて お決まりのHelloWorldとか、C言語CGI解説サイトのサンプルを コンパイルしようとしたが、自分の知ってるフリーで使えるコンパイラは あれしかなかったもので。。。。 でも、ちゃんとhtmlからの入力を受け取って動作したから正直驚きました gccって奴があるのですか。ありがとうございます。
- 84 名前:nobodyさん mailto:sage [03/03/31 23:13 ID:???]
- >>79はスルーかよ!
- 85 名前:nobodyさん mailto:sage [03/03/31 23:13 ID:???]
- >>84
理解できないのはすべて無視。厨房は無視しとけ。
- 86 名前:初心者 mailto:sage [03/03/31 23:28 ID:???]
- >>84
すません。見落としてました 検索掛けると、昔TurboPascalってので有名だった ボーランドのCコンパイラがあったのですね ちなみにC++ってのは良く分からん。。。 厨に構ってくれてありがd これから勉強します
- 87 名前:nobodyさん mailto:sage [03/04/01 21:48 ID:???]
- >>82
LGPLですか? いわゆる感染しないライセンスでしたよね。 ただ、GPLというだけで心理的にイヤなんで、敬遠してます。 ライセンスについても明るくないですし。
- 88 名前:fusianasan mailto:hage [03/04/01 22:59 ID:???]
- 技術者のためのC言語でCGI作成(作:玉なんとか)
って本をreadをしたけど漏れ could not understandですた。
- 89 名前:fusianasan mailto:hage [03/04/01 23:02 ID:???]
- このスレは普及用のスレです。
- 90 名前:nobodyさん mailto:sage [03/04/01 23:30 ID:???]
- 作った物を普及させるのか、作ること自体を普及させるのか。
- 91 名前:fusianasan mailto:hage [03/04/02 14:00 ID:???]
- >>90
作ることを普及するスレ
- 92 名前:nobodyさん mailto:sage [03/04/02 14:22 ID:???]
- じゃあよほど大きなメリットを示さないとなぁ。
- 93 名前:nobodyさん mailto:sage [03/04/02 14:28 ID:???]
- 変数に型がある。
- 94 名前:nobodyさん mailto:sage [03/04/02 15:16 ID:???]
- >>93
"よほど大きな"で出てきたメリットがそれか・・・
- 95 名前:nobodyさん mailto:sage [03/04/02 15:34 ID:???]
- Perl厨には分からないだろうな。
- 96 名前:nobodyさん mailto:sage [03/04/02 16:03 ID:???]
- Cの変数に型があるのは常識なんだからスレ立ててまで語るほどでも無いと思うのだが。
「Cで作ると変数に型があるメリットが!!」で普及したら苦労しねーっていうか。
- 97 名前:fusianasan mailto:hage [03/04/02 21:44 ID:???]
- もっともな魅力は高速な処理かな・・・。
普及するぐらいなら簡単にCでCGIを作れるようになる モジュールみたいなのを作る必要があるのかな?・・
- 98 名前:nobodyさん mailto:sage [03/04/02 21:48 ID:???]
- 普及しない一番の原因はISPの鯖・無料鯖でShellを開放してるトコが殆どないからだと思うがどうか。
- 99 名前:fusianasan mailto:hage [03/04/02 21:48 ID:???]
- 某CGIのBook曰く・・・、CはPerlの数十倍から数百倍の処理能力を持ち合わせているとか・・・
- 100 名前:fusianasan mailto:hage [03/04/02 21:49 ID:???]
- >>98
たしかにな・・・。 www.tok2.comって逝けたっけ?・・・shell
- 101 名前:nobodyさん mailto:sage [03/04/02 22:01 ID:???]
- >>99
その能力がインターネット介したときにどれだけの差になるのかと
- 102 名前:nobodyさん mailto:sage [03/04/02 22:07 ID:???]
- >>97
そういうライブラリがないかどうか探して、もしあったら次にそれの使い方を わかりやすく解説してるサイトを探して紹介した方が普及させるには一番だと思う これらが無いときに初めて自分で作るって手順になるのでは。
- 103 名前:nobodyさん mailto:hage [03/04/02 22:27 ID:???]
- PerlとCで書かれた同じ機能のCGIを比較した
テストの報告とかってどっかに無いのかな?
- 104 名前:nobodyさん mailto:sage [03/04/02 22:35 ID:???]
- 速度差はほとんど普及の要因にならないと思うよ。
仮に100ミリ秒が10ミリ秒になったってネットを介したら誤差の範囲だし。 サーバ機で動かすだろうから一瞬だろうし。 速度差が出るほどのプログラム(処理に何分もかかるような)だと そもそもCGIとして使い物にならないし。
- 105 名前:んじゃ mailto:sage [03/04/02 22:39 ID:???]
- アップローダのように扱うデータ量が多いCGIや
2ちゃんのようなアクセス多数で重たいCGIならば 効果てきめんって事か?
- 106 名前:nobodyさん mailto:sage [03/04/02 22:46 ID:???]
- いっそ「普及」なんてこと考えなければそれなりに成り立つスレだと思うんだけどな。
CでCGI質問スレとかCGI用Cライブラリを作ろうスレとかそんな感じで。 需要は少ないだろうけどカテゴリとしてあってもいいとは思う。
- 107 名前:nobodyさん mailto:sage [03/04/02 22:49 ID:???]
- >>105
アップローダのデータ量が多いってそりゃファイルをUL/DLするネットワークの 速度の問題で、CGIの速度の問題じゃないと思われ。
- 108 名前:nobodyさん mailto:sage [03/04/03 03:36 ID:???]
- 可変長文字列
可変長配列・ハッシュ 正規表現によるマッチング・置換 URLデコード 文字コード変換 ロック とりあえずこれだけサポートしたライブラリが欲しいところ。
- 109 名前:nobodyさん mailto:sage [03/04/03 06:09 ID:???]
- >>108
>URLデコード >文字コード変換 >ロック この辺はどうとでもなるっしょ。
- 110 名前:nobodyさん mailto:sage [03/04/03 06:13 ID:???]
- >>108
ロックならflockをサポートしたOSを使えばいいだろ。
- 111 名前:nobodyさん mailto:sage [03/04/03 21:07 ID:???]
- やっぱり++の方がいいと思うよ。
- 112 名前:nobodyさん mailto:sage [03/04/03 21:26 ID:???]
- >>111
綺麗に書けるわな。
- 113 名前:fusianasan mailto:hage [03/04/03 23:36 ID:???]
- >>108
そうだな、漏れは無理だが誰かつくってくれないかな・・・?
- 114 名前:nobodyさん mailto:sage [03/04/04 01:17 ID:???]
- CygwinでLinux環境用バイナリを吐き出すのも
ひと苦労だよ(´д`) ttp://www.sixnine.net/cygwin/cygwin-doc/devel/cygwin-to-linux-cross-howto.html
- 115 名前:nobodyさん mailto:sage [03/04/04 01:54 ID:???]
- >>113
Object Pascalで良いなら書いても良いけどね。 >>114 無理にクロスコンパイルせんでも、VMwareとかパーティション切ってLinux入れた方が楽じゃない? NLDとかWinLinuxとか言う際物でも良いけど。
- 116 名前:fusianasan mailto:hage [03/04/05 16:10 ID:???]
- KENTさ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ん
jcode.cを作ってくれ。 cgi-lib.cを作ってくれ。 どうせ誰かお前が作れとかいうんだろ?
- 117 名前:nobodyさん mailto:sage [03/04/05 16:11 ID:???]
- 自分用のcgilibならつくったことある・・・
- 118 名前:nobodyさん mailto:sage [03/04/05 16:25 ID:???]
- ならだせ うそ臭いぞ。(w
- 119 名前:nobodyさん mailto:sage [03/04/05 16:33 ID:???]
- くれくれ厨はこのスレ向きじゃないから他逝った方がいいよ
- 120 名前:nobodyさん mailto:sage [03/04/05 17:36 ID:???]
- 奥村先生のアレを使わせてもらいなさい。
- 121 名前:nobodyさん mailto:sage [03/04/05 19:17 ID:???]
- jcodeなんで使うの?
- 122 名前:nobodyさん mailto:hoge [03/04/06 10:59 ID:???]
- KENTって外人なのか?
- 123 名前:nobodyさん mailto:sage [03/04/06 22:17 ID:???]
- websearch.yahoo.co.jp/bin/query?p=%a3%cb%a3%c5%a3%ce%a3%d4%a4%b5%a4%f3&hc=0&hs=0
- 124 名前:anonymouse@on.the.nettori mailto:agesage [03/04/07 13:27 ID:???]
- >>121
EUCとかで投稿してくるヤシがいたら困るからね。 あとKENTって妻子持ちですか?
- 125 名前:anonymouse@on.the.nettori mailto:age [03/04/07 13:29 ID:???]
- www.ab.aeonnet.ne.jp/~hibantyan/kent.htm
KENTさんは旅好きですね。
- 126 名前:nobodyさん mailto:sage [03/04/07 22:27 ID:???]
- 北九州人だよ
allabout.co.jp/computer/cgiperl/closeup/CU20020707A/index.htm
- 127 名前:nobodyさん mailto:sage [03/04/08 14:41 ID:???]
- JIS/SJIS/EUC/UTF8変換すら書けない奴が
C/C++でCGIを作るって……何かのジョーク?
- 128 名前:nobodyさん mailto:sage [03/04/08 14:45 ID:???]
- >>127
車輪の再発明とは時にアホらしいもんです。
- 129 名前:nobodyさん mailto:sage [03/04/08 15:25 ID:???]
- 学習・好奇心等が目的なら自分で作るのもアリだが「普及」が目的のスレだからな。
- 130 名前:fusianasan mailto:hage [03/04/08 16:46 ID:???]
- >>129
CでCGIを実際につくってみるしかないのかな?
- 131 名前:nobodyさん mailto:sage [03/04/09 00:45 ID:???]
- apache1.3の場合、cgiはプロセス生成のコストがかかって
使えないけど、 apache2.0はcgiの復刻の悪寒 ? phpのモジュールなら現実的では。 jp.php.net/manual/ja/zend.creating.php
- 132 名前:fusianasan mailto:hage [03/04/09 23:40 ID:???]
- CのCGIで、ウルトラパワフルでパラダイスなBBSをつくるとするかな・・・。
- 133 名前:nobodyさん mailto:sage [03/04/10 00:49 ID:???]
- 誰かオープンソースですごいライブラリ作ってよ。
そしたら使ってやっから。
- 134 名前:nobodyさん [03/04/10 02:45 ID:zZSFzDwz]
- Cじゃないと出来ない処理ってあるんか
そんなの無いよなぁ? Cだと実行速度がめちゃんこ早えぇと聞くが 10倍くらい速いのか? そういや2ちゃんねるのCGIも Perlのスクリプトだったのを 後にCで書き直されたらしいな ひろゆきもわけわからんだって。
- 135 名前:あぼーん mailto:あぼーん [03/04/10 02:49 ID:???]
- ( ・∀・)< こんなのみつけたっち♪
muryou.gasuki.com/hankaku/hankaku03.html muryou.gasuki.com/hankaku/hankaku04.html muryou.gasuki.com/hankaku/hankaku02.html muryou.gasuki.com/hankaku/hankaku01.html muryou.gasuki.com/hankaku/hankaku10.html muryou.gasuki.com/hankaku/hankaku09.html muryou.gasuki.com/hankaku/hankaku08.html muryou.gasuki.com/hankaku/hankaku07.html muryou.gasuki.com/hankaku/hankaku05.html muryou.gasuki.com/hankaku/hankaku06.html
- 136 名前:佐々木健介 mailto:あぼーん [03/04/10 02:49 ID:???]
- ______
/_ | /. \ ̄ ̄ ̄ ̄| / / ― ― | | / - - | ||| (5 > | | | | ┏━┓| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | | | | ┃─┃| < こんなサイトを見つけた || | | | \ ┃ ┃/ \ 正直、スマンカッタ | || | |  ̄ \_________ saitama.gasuki.com/kensuke/
- 137 名前:nobodyさん mailto:sage [03/04/10 06:33 ID:???]
- Apache のモジュールをCで組む。
じゃ駄目なの?
- 138 名前:fusianasan mailto:hage [03/04/11 18:54 ID:???]
- おい、早速C言語CGI普及に成功したで〜
www.aaacafe.ne.jp/ の無料ホームページでC言語CGIが使えるようになったぞ。 やっぱりこのスレのおかげだな
- 139 名前:nobodyさん mailto:sage [03/04/11 20:09 ID:???]
- >>138
そこ・・・ CGI(C)の仕様について > ご自分でコンパイルしてアップロードしてください。 > 拡張子は > .cgi > です。 どうしろと?FAQ読んでも、検索して調べてくださいとか書かれてるし。 バイナリをアップロードするのなら、CGIを許可されているところなら 何処でも動くけど?>C言語でかかれたCGIプログラム 普及っていえるのか・・・
- 140 名前:nobodyさん mailto:sage [03/04/11 20:54 ID:???]
- >139
そこ借りてやってみた perlでスクリプト書けばコンパイルできる
- 141 名前:nobodyさん mailto:sage [03/04/11 21:09 ID:???]
- >>140
意味わからん
- 142 名前:nobodyさん mailto:sage [03/04/11 21:55 ID:???]
- だからそこの鯖にcで書いたソースと
それをコンパイルするcgiをうpしてブラウザでcgiを呼ぶ
- 143 名前:nobodyさん mailto: [03/04/11 22:04 ID:???]
- >>141
telnet.cgiのようなものを使えばできるということじゃないだろうか。 telnetやsshは使えないけど、Cコンパイラは使えると。
- 144 名前:143 mailto: [03/04/11 22:07 ID:???]
- >>142
実際に試したの?
- 145 名前:143 mailto: [03/04/11 22:10 ID:???]
- >>140に書いてあったか。
他のコマンドも使えそうだな。
- 146 名前:143 mailto:sage [03/04/11 22:57 ID:???]
- おーできた!
↓試しに簡単なものを作って設置してみた f13.aaacafe.ne.jp/~seraph/cgi-bin/mininslookup.cgi
- 147 名前:nobodyさん mailto:sage [03/04/11 23:28 ID:???]
- >146 それソケット使ってる?
- 148 名前:nobodyさん mailto:sage [03/04/11 23:36 ID:???]
- >>147
うん(socket関数はコード上では使っていないけどね)。 サーバー上でコンパイルしようとしたらなんかsocket.hがシンタックスエラーを起こしたんで自分のところでコンパイルしてアップした。 でもサーバー上でコンパイルできるのは確かみたい。
- 149 名前:nobodyさん mailto:sage [03/04/12 00:37 ID:???]
- つーかみんなサーバ側でコーディングなりコンパイルなりしてんの?
ローカルに環境作ってそこで作ってテストして、できたものをサーバにアップするんじゃなくて?
- 150 名前:何でやねん mailto:sage [03/04/12 01:11 ID:???]
- サーバ側でコンパイルするメリットって何かあるの?
何らかのトラブルの元になりそうで あまり良くない予感がするんだけど 運用するサーバへの最適化とかは コンパイラのオプションの問題であって、 コンパイルする場所とは別に関係ないよな?
- 151 名前:nobodyさん mailto:sage [03/04/12 08:49 ID:???]
- >>150
>サーバ側でコンパイルするメリットって何かあるの? SunOSとか探してきて入れるのウザイ。
- 152 名前:nobodyさん mailto:sage [03/04/12 11:25 ID:???]
- palmとか組み込みとか実機でコンパイルできない場合は、
専用のクロス開発環境があると思うけど unix系の場合は実機でコンパイルが普通では? 全然違う環境でコンパイルしてまともに動くの? やったことないから不安だな
- 153 名前:nobodyさん mailto:sage [03/04/12 12:57 ID:???]
- なるほど。
要するにサーバの機種やOSに対応する クロスコンパイラを探すのが面倒だってことか。 どっちもLinuxとは限らないもんな。
- 154 名前:nobodyさん mailto:sage [03/04/12 13:03 ID:???]
- 同じLinuxでもCPUの違いによって動かないということもあるし。
- 155 名前:nobodyさん mailto:sage [03/04/12 16:46 ID:???]
- Linuxが標準だと勘違いしてるやつウザイ
- 156 名前:nobodyさん mailto:sage [03/04/12 17:39 ID:???]
- 実機でコンパイルしないと、激しく不安に感じる私は変だろうか。
コンパイラ/ライブラリの違いによって動作が違ったり、 バグが出たりする心配があるんだけど。
- 157 名前:nobodyさん mailto:sage [03/04/12 18:43 ID:???]
- 互換のあるバイナリ配布が簡単に作成できる様なら、
オープンソースな文化は育たなかっただろうし。 >>146 overflow ...
- 158 名前:nobodyさん mailto:sage [03/04/12 19:49 ID:???]
- >>156
ある程度のソース互換があったのが救いだな。
- 159 名前:nobodyさん mailto:sage [03/04/12 19:52 ID:???]
- >>157
overflow?バッファが?起きないはずだけど。
- 160 名前:fusianasan mailto:hage [03/04/13 01:17 ID:???]
- Python
Ruby Perl PHP C(C++) をいい順番でならべるとどう? 評価基準は、鯖への負荷/処理速度/CGI作成にどれだけ適しているか を考慮して・・・。
- 161 名前:fusianasan mailto:hage [03/04/13 01:22 ID:???]
- ちなみにCGI作成に適しているの基準は、
どれだけCGIをつくりやすいかってこと。 Perlならその点では評価がいいと思われる
- 162 名前:nobodyさん mailto:sage [03/04/13 04:27 ID:???]
- >>160
PHP (Perl) C++ Ruby Python Pascal C LISP BASIC LOGO
- 163 名前:nobodyさん mailto:sage [03/04/13 10:54 ID:???]
- 鯖の負荷、処理速度だけを考えると
Cが最強か。 いや、アセンブラ。。。
- 164 名前:nobodyさん mailto: [03/04/13 14:10 ID:???]
- >>162
LOGOワラタ C++はそんなに上か?
- 165 名前:164 mailto: [03/04/13 14:12 ID:???]
- あ、評価基準はつくりやすさだけじゃないのね。
- 166 名前:nobodyさん mailto:sage [03/04/13 14:24 ID:???]
- C++は、Perlほどじゃないにせよ、かなり大雑把に
さくさくと書けちゃうよ。
- 167 名前:Perl、PHP、C、HTMLファイルにして読む [03/04/13 17:46 ID:bgaBPkZL]
- 2ちゃんねる型でPHPとPERLの速度比較
sugachan.dip.jp/download/bench.png sugachan.dip.jp/download/read.php PHPよりPerlの方が速いようですが、 鯖負荷の順序はどうなのだろう? Perl、PHP、C、HTMLファイルにして読む
- 168 名前:nobodyさん [03/04/13 17:54 ID:Ok9Y0fz8]
- 凄いサイト発見です!! f2.aaacafe.ne.jp/~ishigaki/default.html
- 169 名前:nobodyさん [03/04/13 17:59 ID:0bbeziRr]
- yahooo.s2.x-beat.com/linkvp/linkvp.html
- 170 名前:fusianasan mailto:hage [03/04/13 20:28 ID:???]
- C++ってそんなにさくさくかけたのか。
- 171 名前:nobodyさん mailto:sage [03/04/13 20:31 ID:???]
- >>170
Cよりは楽。
- 172 名前:fusianasan mailto:hage [03/04/13 20:33 ID:???]
- ふーん・・・。試してみようかな。
- 173 名前:nobodyさん mailto:sage [03/04/13 20:37 ID:???]
- >>167
そこの人はmod_perl使ってるよ。 普通のPerlじゃだめぽ。 mod_perlならPHPと同等かそれ以上じゃない? Cが遅いのはサーバサイドじゃないから C自体が遅いわけじゃない。
- 174 名前:nobodyさん mailto:sage [03/04/13 20:38 ID:???]
- >Cが遅いのはサーバサイドじゃないから
何を訳の分からんことを?
- 175 名前:nobodyさん mailto:sage [03/04/13 20:40 ID:???]
- ちなみにmod_perlが速いっていうのは
普通のPerlのスクリプトは コンパイル→中間コード→実行 という手順だけど mod_perlだと 最初の一回だけコンパイル→中間コード→実行で 次からはコンパイルをしないで中間コード→実行 となるんで劇的に速くなる。 PHPはコンパイル→中間コード→実行なんで 多少それよりかは落ちるかも・・・ PHPAとか中間コードを残すのもあるけど まだ出始めで微妙だね。
- 176 名前:173,175 mailto:sage [03/04/13 20:42 ID:???]
- >>174
mod_perlとかmod_phpとかと比べたらCGIとしては 多少オーバーヘッドが大きいと言いたかっただけなんだが・・・ 見当違いだったらスマソ
- 177 名前:nobodyさん mailto:sage [03/04/13 21:07 ID:???]
- >>176
じゃあ、Cでモジュール作るってのが最強だと思うんだが。
- 178 名前:173,175 mailto:sage [03/04/13 21:13 ID:???]
- >>177
多分ね。 でもCGI如きでそこまでするやつは少ないだろ
- 179 名前:nobodyさん mailto:sage [03/04/13 21:23 ID:???]
- >>178
Cでモジュール作るだけでは飽きたらずPerl実行環境にしてしまったmod_perlの作者はアホだと言うことに。
- 180 名前:nobodyさん mailto:sage [03/04/13 21:41 ID:???]
- >>179
焦点が合ってない。
- 181 名前:nobodyさん mailto:sage [03/04/13 21:42 ID:???]
- つーか言語比較はスレ違いだろ。ここはC/C++ってのが前提なんだから。
- 182 名前:nobodyさん mailto:sage [03/04/13 21:46 ID:???]
- 昔ゆいちゃっとのC言語版配布されてたよな・・・
今もされてるのだろうか
- 183 名前:nobodyさん mailto:sage [03/04/13 22:53 ID:???]
- >>181
C++はスレ違い
- 184 名前:nobodyさん mailto:sage [03/04/13 23:02 ID:???]
- >>183
さて、可変長文字列の扱いが地獄のように面倒になるわけだが。
- 185 名前:Perl、PHP、C、HTMLファイルにして読む [03/04/14 00:32 ID:dnrQZih1]
- HTMLファイルを読むのと、PerlやCとの比較がないのだが!
- 186 名前:nobodyさん mailto:age [03/04/14 00:49 ID:???]
- いちばんお薦めなのは、機械語でWebサーバと専用CGIをセットで開発する
ことだぜい! 結構速いYO!
- 187 名前:nobodyさん mailto:hoge [03/04/14 02:07 ID:???]
- >>186
それは理想だが、実際に 機械語・アセンブラで本当にCGIを書く気ある? あるわけ無いよな。 それに一番近いのが、Cで開発するって事だろう。 最初はPerlで書かれていた2ちゃんねるのCGIも、 アクセス増加でサーバ負荷が高くなり、Cで書き直されたらしいし。
- 188 名前:nobodyさん mailto:sage [03/04/14 06:07 ID:???]
- >>187
彼はWebサーバごとスクラッチしろと言っているのですよ。
- 189 名前:nobodyさん mailto:sage [03/04/14 17:47 ID:???]
- >178
モジュールと言わずとも、FastCGIって手もある。 www.fastcgi.com/ いずれにしてもモジュール組み込まなきゃならないから、 root持ってないと辛いけど。 遊びで動かしてる自宅鯖とかなら無問題。 あと、C++で楽しいライブラリ知らない? 一応cgiccてのは見付けたけど、いかにもGNUな田舎臭い ライブラリなんだよなあ。
- 190 名前:nobodyさん mailto:sage [03/04/14 20:28 ID:???]
- >あと、C++で楽しいライブラリ知らない?
WTLとか。
- 191 名前:nobodyさん mailto:sage [03/04/14 20:45 ID:???]
- C++で楽しいライブラリ作らない?
- 192 名前:nobodyさん mailto:sage [03/04/14 20:48 ID:???]
- >>191
MFCとか。
- 193 名前:nobodyさん mailto:sage [03/04/15 00:34 ID:???]
- 結局このスレの住人は、誰一人
C言語でCGIを書いた奴はいないようだな。 脳内プログラミング…
- 194 名前:nobodyさん [03/04/15 01:48 ID:CDjnnd9Z]
- >>193
ん、実際に作って自分のsiteで使ってるよ。 新たにperl覚えるのもメンドイし。 簡単なbbsとアクセスログ付きカウンタだけだけどね。 簡単なライブラリも作ったけど、 さすがに人様にお見せできるレヴェルじゃないので(w 一応Servletもつかえる環境構築しだけど 家かえってまでそんな大掛かりなコーディングしないし。。
- 195 名前:nobodyさん mailto:sage [03/04/15 02:11 ID:???]
- >>193
書いた事はあるけど、共有鯖で使うのはちょと怖い。 安全性を担保できる方法を考えてます。
- 196 名前:fusianasan mailto:hage [03/04/16 19:33 ID:???]
- いまCのデコード作業やってんだけど・・・
日本語処理が難しいね。 バイナリがどうのこうのって、なかなかうまく逝きません。 ヒントを所望したい。
- 197 名前:nobodyさん mailto:sage [03/04/16 20:53 ID:???]
- 標準ライブラリがワイド文字ライブラリを用意しているのに・・・
- 198 名前:nobodyさん mailto:sage [03/04/16 21:27 ID:???]
- ロケール指定を忘れるな。
- 199 名前:194 mailto:sage [03/04/17 00:45 ID:???]
- >>196
デコード自体はマルチバイト意識しなくてもいいんやん? あ、俺が作った時はあくまで個人用途なので ちゃんと試験したらボロボロかもしれんが(w 文字コード関係は自作せず、nkfのソースをぱくったYO! どっかのサイトで見本があったので。
- 200 名前:nobodyさん mailto:sage [03/04/17 05:56 ID:???]
- >>197
まともに実装されているとは限りません。 wchar_t == UCS-2でも幸せな部類です。 しかもCGIなので、どのencodingが飛んで来るかも分からない ので、ワイド文字関係は基本的に使えません。
- 201 名前:山崎渉 mailto:(^^) [03/04/17 12:00 ID:???]
- (^^)
- 202 名前:fusianasan mailto:hage [03/04/17 18:05 ID:???]
- いま次のような手順でやってるんですけどひらがなとかはわりとデコードできるんですけど・・・どこに問題がありますかね?あと今は&で区切る処理が無視してください。
1:GET/POSTの判別をする。/2:クエリーストリングや標準出力をよむ。/3:一文字ずつ次のように処理をする。 4:%が現れたら次の文字とさらに次の文字(それぞれ順にchar型変数A/Bとする。) 5:int jp = 0x10*A + B; 6:jpをchar型配列にぶち込んでいく。string[now] = printf("%c",jp);(nowには配列の現在の番号が入る。) ご指摘お願いします。
- 203 名前:fusianasan(202 mailto:hage [03/04/17 18:06 ID:???]
- 追加事項
{+は空白にする。 {%でも+でもなければそのままchar型配列にぶち込む
- 204 名前:194 mailto:sage [03/04/17 18:40 ID:???]
- >>202
基本は問題ないと思われ。。 パッと見、気になるのは手順の5。 int jp でなく char jp の方が心臓に良いと個人的に思う。 #符号の問題ね。 あとは初歩的な・・・ 4の処理が誤ってないこと、 char配列操作時のポインタ操作が「多少複雑」になってると思うので ケアレスミスが無いことを確認汁。
- 205 名前:fusianasan mailto:sage [03/04/17 18:43 ID:???]
- >>204
大変参考になる、返答ありがとうございました。 またがんばって試行錯誤してみます。 本当に有難うございますぃた。
- 206 名前:fusianasan mailto:ji [03/04/17 18:47 ID:???]
- 今思ったのですが>>202で
A;Bの処理で swich(A) { case '0': A = 0x01; case '1': A = 0x02; (中略) case 'f': case 'F': A = 0x0f } って漢字に16進にしなくてはいけませんよね?
- 207 名前:fusianasan mailto:ji [03/04/17 18:49 ID:???]
- 206です。
%のあとにつづく2文字をA,Bに代入したあとの処理を表しています。 ちょっとミスってるけど(セミコロンぬけ) その辺は見逃してください。 ちなみにBに関しても同じ処理を行う。
- 208 名前:194 mailto:sage [03/04/17 18:49 ID:???]
- 見落としてた・・・
>ひらがなとかはわりとデコードできるんですけど・ デコードできる== 正しい文字で認識出来るってことだよね? html含め処理内の文字コードの統一は出来てる??
- 209 名前:nobodyさん mailto:sage [03/04/17 18:50 ID:???]
- >>200
何作っているのかしらんが、文字コードの統一処理なんて必要ないだろ。
- 210 名前:nobodyさん mailto:sage [03/04/17 18:59 ID:???]
- 判別不能なエンコーディングで送られてくるかもしれない。
- 211 名前:194 mailto:sage [03/04/17 19:00 ID:???]
- >>207
break; も抜けてるが勘弁してやろう(w その通り、16進だよ。 ちなみに漏れは、大文字のA〜Fを返すブラウザに出会ったことがないので こんな感じ。 #余りいい見本では無いが・・ char *str; char w; if( *str < 0x41){ w = *str - 0x30; }else{ w = (*str - 0x41) + 10; }
- 212 名前:fusianasan mailto:jis [03/04/17 19:15 ID:???]
- >>208
すべてシフトJISで送ってくれると思ってしていません。 (そこまで考える余裕がまだないからね・・・。) HTMLはなるべくshift-jisで出力するようにメタタグに 記している。 >>211 ほんまや。break;が抜けちょる・・・・。
- 213 名前:nobodyさん mailto:sage [03/04/17 19:28 ID:???]
- H&Sから引用。
>int toint(int c) >{ >if (c >= '0' && c <= '9') return c-'0'; >if (c >= 'A' && c <= 'F') return c-'A'+10; >if (c >= 'a' && c <= 'f') return c-'a'+10; >return 0; /* other */ >}
- 214 名前:nobodyさん mailto:sage [03/04/17 19:50 ID:???]
- 昔書いたURLエンコードされた文字列をデコードする関数。
#include <stdlib.h> char *url_decode(char *str) { char *p1=str,*p2=str,buf[3]={0}; for(;*p2;p1++){ switch(*p2){ case '%': strncpy(buf,p2+1,2); *p1=(char)strtol(buf,NULL,16); p2+=3; break; case '+': *p1=' '; break; default: *p1=*p2; p2++; } } *p1='\0'; return str; } >>202 > string[now] = printf("%c",jp); string[now]には1か負の数(おそらく-1)しか入らないけどいいの?
- 215 名前:nobodyさん mailto:あge [03/04/17 19:56 ID:???]
- デコードに文字コードなんか関係あるのか?
- 216 名前:bloom [03/04/17 19:56 ID:ahUYqmP+]
- www2.leverage.jp/start/
- 217 名前:215 mailto:sage [03/04/17 20:02 ID:???]
- 書き直そう。
デコードに文字コードが影響するのか?
- 218 名前:bloom [03/04/17 20:02 ID:VKhj20RH]
- www2.leverage.jp/start/
- 219 名前:fusianasan mailto:jis [03/04/17 22:04 ID:???]
- デコードテストをするために
今日ローカル鯖じゃなくてちゃんとしたUnix鯖で試したんすよ・・・。 じゃあローカル鯖でやったときよりイイ結果がでたんすよ。 やっぱりコンパイラによってちがうんですかね? ローカル鯖ではLSI試食版つかってたんですけどね。 Borland c++だとファイルサイズが巨大になるからあんまり 好きじゃないんだな・・・。
- 220 名前:nobodyさん mailto:sage [03/04/17 22:29 ID:???]
- 最適化OFFの予感
- 221 名前:nobodyさん mailto:sage [03/04/17 22:52 ID:???]
- >>220
最適化って速度とサイズでは全然違うと思うんだが。
- 222 名前:fusianasan mailto:jis [03/04/18 18:47 ID:???]
- ようわからんけど、今日ようやくデコードプログラムが完成しました。
ちゃんとデコードできるようになりますた。 わーい!わーい!
- 223 名前:nobodyさん mailto:sage [03/04/18 18:48 ID:???]
- >>222
もう少しCの標準関数について勉強した方がいいと思う。
- 224 名前:nobodyさん mailto:sage [03/04/18 20:42 ID:???]
- >>223
標準関数でURLデコードできる時代なのな?
- 225 名前:nobodyさん mailto:age [03/04/18 21:02 ID:???]
- >>224
> 5:int jp = 0x10*A + B; この変が阿呆らしいと言っているんだよ。strtolという関数があるだろ。
- 226 名前:nobodyさん mailto:age [03/04/18 21:06 ID:???]
- 逆だが、↓これと同じこと。
www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.1.6.html
- 227 名前:nobodyさん mailto:sage [03/04/18 23:45 ID:???]
- 226のurl、バッファオーバーフローの危機(ry
は置いといてマジレス・・ 「車輪の再発明」だの「標準関数にある」だのってよく言われるけど 効率を追求する業務じゃなきゃ別にいいんじゃん? 確かに無駄な努力かもしれんけど、 初心(初学)者はそれによって大幅に理解が深まると思うし。 その気になれば、ほとんど全部自分で作れるのが Cの長所でもあり短所でもあると思うよ。 逆に業務なら、『低レベル』まで自分で作れると いざというとき強かったりする。 特殊な例かもしれんけど、一部組み込み系とか ほとんど標準関数使えない様な環境もあるし。 自分で書いてて、屁理屈に見えてきた。 逝ってきます・・・
- 228 名前:nobodyさん mailto:sage [03/04/19 00:24 ID:???]
- strtol,ulとか使うと、なんとなく仰々しい感じを受けるが…。
strtolだと、プラス/マイナス符号を突っ込まれても大丈夫? たとえば、'%-E' とかあった場合。 それほど大きな問題にならないとは思うけど。。 また、URLデコードの後は0x80から0xFFが含まれる場合を考えて、 char型では無くunsigned char型の方がいいと思われ。
- 229 名前:nobodyさん mailto:sage [03/04/19 00:31 ID:???]
- >>228
> たとえば、'%-E' とかあった場合。 そんな決まりにしたがわないデータはどうデコードされても文句は言えない。
- 230 名前:228 mailto:sage [03/04/19 00:31 ID:???]
- strtolのエラートラップもしっかりとね。
変な文字食わせると0が返るから。
- 231 名前:229 mailto:sage [03/04/19 00:32 ID:???]
- だってデコードのしようがないもの。
- 232 名前:228 mailto:sage [03/04/19 00:36 ID:???]
- デコードのしようがなければ、エラーを返すものだと思うが。
変? # お好きにどうぞ。
- 233 名前:231 mailto:sage [03/04/19 00:40 ID:???]
- >>232
あんたがたまたま割り込む形で書き込んだだけで、別に>>230にレスしたわけじゃない。 >>229に補足しただけ。
- 234 名前:nobodyさん mailto:sage [03/04/19 06:05 ID:???]
- >>232
例外とかが投げれるならより綺麗なんだけどね。
- 235 名前:fusianasan mailto:jis [03/04/19 15:13 ID:???]
- 動作すればどうでもいいやろ。
- 236 名前:nobodyさん mailto:sage [03/04/19 16:21 ID:???]
- いい加減Cなんて捨ててC++にしろ。
- 237 名前:nobodyさん mailto:sage [03/04/19 16:30 ID:???]
- Perlで書くときもデコードのエラー処理なんてしないような・・・・
- 238 名前:nobodyさん mailto:sage [03/04/19 16:32 ID:???]
- >>237
フォーマットがおかしいときはそもそもマッチしないからエラーの起こる余地がない。
- 239 名前:nobodyさん mailto:sage [03/04/19 16:51 ID:???]
- >>238
うん。だからエラー処理なんてしないよねと。 ゆえに>>232の言っていることはこれに関してはおかしいかも。
- 240 名前:nobodyさん mailto:sage [03/04/19 16:52 ID:???]
- >>239
Cの場合はいくつかエラーとなる要因はある。バッファオーバーフローとかな。
- 241 名前:fusianasan mailto:コマン@自慰表明 [03/04/19 21:18 ID:???]
- >>236:まだまだCの途中です。byF田K子
- 242 名前:山崎渉 mailto:(^^)sage [03/04/20 05:58 ID:???]
- ∧_∧
( ^^ )< ぬるぽ(^^)
- 243 名前:fusianasan mailto:コマン [03/04/20 17:37 ID:???]
- __↓>>242
/  ̄ ̄ー―-_ ▲ ) / /ハハハ\ |\|\|\___イ . / \ | /\ /\lllll| / _ _ \ | /・\ /・\ | . | ⊂⊃ ⊂⊃ | |  ̄/、  ̄ ̄ ) (| ∴ ∪ ∴ | |  ̄ / \ <=> / ヽ <三> / \____/ ヽ / ∧ /| \/ ,r‐‐‐‐‐‐‐‐‐'´ `゙‐‐‐‐‐‐‐‐‐‐、r‐‐‐‐‐‐'´ `゙‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐、 | 山崎君、きみはぬるぽしか言えないのかい| そんなに卑怯者、卑怯者と | i やっぱりきみは卑怯ものさ。 i 言わないでくれよ〜(泣 i
- 244 名前: mailto:sage [03/04/21 11:55 ID:???]
- つーか、適切なテストケース一覧を準備して自動でテストするプログラム作れよ。
- 245 名前:nobodyさん [03/04/23 19:47 ID:jAUiG1DX]
- >>245
What does it mean?
- 246 名前:nobodyさん mailto:sage [03/04/23 20:22 ID:???]
- >>245
再帰か。渋いな。
- 247 名前:nobodyさん mailto:sage [03/04/23 21:10 ID:???]
- 終了条件がないね。スタックオーバーフロウかしら。
- 248 名前:nobodyさん mailto:sage [03/04/26 01:53 ID:???]
- perlばっかやってたからCがわかんねぇだ。
代入ひとつからしてもめんどくさくてしょうがない。
- 249 名前:nobodyさん mailto: [03/04/26 05:00 ID:???]
- >>248
代入って文字列の代入のこと?
- 250 名前:nobodyさん mailto:sage [03/04/26 08:39 ID:???]
- >>248
取りあえず文字列型かクラスのある言語使った方が幸せになれると思うよ。
- 251 名前:ふしアナ: [03/04/27 21:06 ID:Cn2+e3lF]
- 前友達にされた質問。
これってなんて読む? (漏れの場合) char ちゃー argv あーぐぶい printf ぷりんとふ sprintf すぷりんとふ hex へっくす int いんと getenv げっといーえぬぶい void ぼいど buffer ばっはー/ぶっふぁー malloc まろっく とりあえず今日はこのへんで・・・・
- 252 名前:nobodyさん mailto:sage [03/04/27 21:17 ID:???]
- >>251
もう流石に飽きたな。読み方ネタ。
- 253 名前:nobodyさん mailto:sage [03/04/27 21:21 ID:???]
- >>252
はげどう。
- 254 名前:ふしアナ: [03/05/03 23:37 ID:4lYMudid]
- Cで作るときとC++で作るときどちらもメリット、デメリットが
あるとおもいますけど、それぞれの美点と欠点をあげてくれませんか?
- 255 名前:nobodyさん mailto:sage [03/05/03 23:38 ID:???]
- >>254
C++:可変長文字列が美しく実装できる。
- 256 名前:nobodyさん mailto:sage [03/05/03 23:39 ID:???]
- つーか標準ライブラリが提供しているじゃねーか。
- 257 名前:FENT [03/05/06 00:10 ID:mpO79UQ6]
- 質問!
UNCGIをWINDOWSで実行モジュール".exe"にコンパイルしたことある人 コンパイル方法おしえて。 英語のDocを読むとターボCがなんちゃらでわからん。 できれば、VC++とかでコンパイルしたいのねー。
- 258 名前:FENT [03/05/06 00:14 ID:mpO79UQ6]
- >>254
WINDOWSで動かす場合だけど。 拡張子".cpp"で作成すればWINAPIをガシガシつかったCGIが出来るよ。
- 259 名前:nobodyさん mailto:sage [03/05/06 00:21 ID:???]
- (ノ_-;)ハア…
- 260 名前:nobodyさん mailto:sage [03/05/06 00:47 ID:???]
- めまいと頭痛が・・・
- 261 名前:FENT [03/05/06 01:04 ID:mpO79UQ6]
- 焼きなおすか・・・
UNCGIに変わるもので、おすすめのものしっているかた いらしたら教えてください。
- 262 名前:動画直リン [03/05/06 01:10 ID:qyy2Fj99]
- homepage.mac.com/hitomi18/
- 263 名前:nobodyさん mailto:sage [03/05/06 01:18 ID:???]
- #define hex2dec(c) (((c) >= 'a' && (c) <= 'f') ? ((c) - 'a' + 10) : ((c) >= 'A' && (c) <= 'F') ? ((c) - 'A' + 10) : ((c) >= '0' && (c) <= '9') ? ((c) - '0') : (c))
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; } 何年か前に作ったデコード関数。 マクロの括弧が無駄に多い気が・・・
- 264 名前:263 mailto:sage [03/05/06 01:20 ID:???]
- 今改めて見ると、何て無駄の多いコードなんだ・・・
- 265 名前:nobodyさん mailto:sage [03/05/06 01:29 ID:???]
- isxdigitとか知らないのか?
- 266 名前:_ mailto:sage [03/05/06 01:35 ID:???]
- ( ・∀・)/< こんなのみつけたっち♪
www.japan.pinkserver.com/kensuke/hankaku/hankaku07.html japan.pinkserver.com/kensuke/zenkaku/index.html www.japan.pinkserver.com/kensuke/hankaku/hankaku08.html japan.pinkserver.com/kensuke/hankaku/hankaku10.html www.japan.pinkserver.com/kensuke/hankaku/hankaku07.html japan.pinkserver.com/kensuke/hankaku/hankaku03.html www.japan.pinkserver.com/kensuke/hankaku/hankaku05.html japan.pinkserver.com/kensuke/hankaku/hankaku01.html www.japan.pinkserver.com/kensuke/hankaku/hankaku06.html japan.pinkserver.com/kensuke/hankaku/hankaku04.html www.japan.pinkserver.com/kensuke/hankaku/hankaku09.html
- 267 名前:261 [03/05/06 02:05 ID:mpO79UQ6]
- >>263
返信ありがとうございます。すみませんでした。 う〜ん ヘキサのデコードというか、UNCGIを使いたかったのは、 HTTPのリクエストから切分けてデコードした後に、 環境変数にセットしている、仕組みをそのまま使いたいなーって思って たんですよ。 UNCGIの処理の流れ的には ・環境変数取得 ・切離し後デコード ・それぞれ別の環境変数にセット ・URLの引数(ttp://***/uncgi/aaa.exe)のプログラム(aaa.exe)を起動 ・起動されたプログラムは、環境変数よりPOST及びGETの パラメータを取得 こんな感じだとおもうんですよ。作ればいいんですけど・・・ ただ、コンパイルできたらいいなーと思いまして。 VC++だと、何ヶ所かコンパイルにひっかかってしまうので 私のめんどくさがりやから・・・質問してしまいました。
- 268 名前:261 [03/05/06 02:08 ID:mpO79UQ6]
- >>267 追加
ただ・・この仕組みをつくるとしたら疑問があるんです。 HTTPのリクエストで起動されたCGIによってセットされる環境変数は、 ブラウザごとに別々の扱い(DOSプロンプトのように)になるのでしょうか? 同時にアクセスがあった場合、同一名称の環境変数は、それぞれブラウザ ごとに違う値を保持するのかな???
- 269 名前:nobodyさん [03/05/06 03:04 ID:CpGJxcjL]
- 自分でデコードしてたけど、画像アップロードとかあるんで
結局cgiccに移行したよ。cgiccおすすめ。
- 270 名前:bloom [03/05/06 03:10 ID:qyy2Fj99]
- homepage.mac.com/ayaya16/
- 271 名前:_ mailto:sage [03/05/06 03:25 ID:???]
- ( ・∀・)/< こんなのみつけたっち♪
www.japan.pinkserver.com/kaorin/moe/jaz04.html japan.pinkserver.com/kaorin/mona/index.html www.japan.pinkserver.com/kaorin/moe/jaz05.html japan.pinkserver.com/kaorin/moe/jaz08.html www.japan.pinkserver.com/kaorin/moe/jaz09.html japan.pinkserver.com/kaorin/moe/jaz02.html www.japan.pinkserver.com/kaorin/moe/jaz06.html japan.pinkserver.com/kaorin/moe/jaz01.html www.japan.pinkserver.com/kaorin/moe/jaz10.html japan.pinkserver.com/kaorin/moe/jaz07.html www.japan.pinkserver.com/kaorin/moe/jaz03.html
- 272 名前:_ mailto:sage [03/05/06 04:07 ID:???]
- 川o・-・)ノ <先生!こんなのがありました!
www.japan.pinkserver.com/kaorin/moe/jaz03.html japan.pinkserver.com/kaorin/mona/index.html www.japan.pinkserver.com/kaorin/moe/jaz02.html japan.pinkserver.com/kaorin/moe/jaz08.html www.japan.pinkserver.com/kaorin/moe/jaz09.html japan.pinkserver.com/kaorin/moe/jaz05.html www.japan.pinkserver.com/kaorin/moe/jaz06.html japan.pinkserver.com/kaorin/moe/jaz01.html www.japan.pinkserver.com/kaorin/moe/jaz10.html japan.pinkserver.com/kaorin/moe/jaz07.html www.japan.pinkserver.com/kaorin/moe/jaz04.html
- 273 名前:nobodyさん mailto:sage [03/05/06 07:50 ID:???]
- >>267
誰 も お 前 に は 返 信 し て い な い よ
- 274 名前:nobodyさん [03/05/07 00:56 ID:ZdGvFTnv]
- >>273
↑朝早くから 誰 オ マ イ
- 275 名前:nobodyさん mailto:sage [03/05/08 15:14 ID:???]
- どう考えたってスカラー電磁波って、
ニコラ・テスラのパクりだろ。( ゚Д゚) plaza16.mbn.or.jp/~satchel/
- 276 名前:nobodyさん mailto:sage [03/05/20 01:53 ID:???]
- C++版(for文2回バージョン、入力文字列のチェックなし)
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)); } }
- 277 名前:山崎渉 mailto:(^^) [03/05/22 02:04 ID:???]
- ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
- 278 名前:山崎渉 mailto:(^^) [03/05/28 17:18 ID:???]
- ∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
- 279 名前:山ア渉 [03/06/15 18:32 ID:VQqVlPF2]
- 構造体がわからないのですが・・・。
- 280 名前:King.Yamazaki ◆/3cyWCTf.c [03/06/15 18:42 ID:VQqVlPF2]
- Please tell me some FREE servers at which you can use C.
I will show you any of them. fh.aaacafe.ne.jp/ GET! Free Server Space!
- 281 名前:山崎 渉 mailto:(^^) [03/07/15 11:12 ID:???]
-
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
- 282 名前:山崎 渉 mailto:(^^)sage [03/08/02 02:39 ID:???]
- ∧_∧
( ^^ )< ぬるぽ(^^)
- 283 名前:ぼるじょあ ◆ySd1dMH5Gk mailto:(^^) [03/08/02 05:23 ID:???]
- ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
- 284 名前:nobodyさん [03/08/10 00:34 ID:3gdl3sO5]
- 2chって、Cで稼動させるのと、Javaで稼動させるのと、
どっちが高速安定動作するんですか?
- 285 名前:nobodyさん mailto:sage [03/08/10 00:37 ID:???]
- ( ゚д゚)ポカーン ( ゚д゚)ポカーン ( ゚д゚)ポカーン
( ゚д゚)ポカーン ( ゚д゚)ポカーン ( ゚д゚)ポカーン ( ゚д゚)ポカーン ( ゚д゚)ポカーン ( ゚д゚)ポカーン
- 286 名前:_ mailto:sage [03/08/10 00:40 ID:???]
- homepage.mac.com/hiroyuki45/
- 287 名前:nobodyさん [03/08/10 16:43 ID:37o8iGE7]
- Cでファイルロックをしたいのですが窓とunixの両方で動作させるためにはどうすればよいのでしょうか?
普通にflock関数を使うのはまずいですか
- 288 名前:nobodyさん mailto:sage [03/08/10 17:10 ID:???]
- >>287
#ifdef
- 289 名前:nobodyさん [03/08/10 17:22 ID:j1wuC9e6]
- >>287
ム板とマルチ。
- 290 名前:nobodyさん mailto:sage [03/08/10 19:36 ID:???]
- >>289
うるさいヴぉけ と思ったらあれがレスですか。あなたはもしや照れ屋さんですか?
- 291 名前:nobodyさん [03/08/14 14:08 ID:oA+wkOB6]
- どうしてWeb系のCプログラマーってインデントしないの?
TABの1Byteをケチりたいの?
- 292 名前:nobodyさん mailto:sage [03/08/14 14:11 ID:???]
- >>291
するけど?見た例がたまたまそうだったんじゃないの?
- 293 名前:nobodyさん mailto:sage [03/08/14 14:38 ID:???]
- >>291
2chにコピペされたコードを見た・・・・?
- 294 名前:山崎 渉 mailto:(^^) [03/08/15 22:31 ID:???]
- (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
- 295 名前:nobodyさん [03/08/17 15:25 ID:VoWMe2O6]
- ホシュ
- 296 名前:あぼーん mailto:あぼーん [あぼーん]
- あぼーん
- 297 名前:______ mailto:sage [03/08/17 15:32 ID:???]
- ∋8ノノハ.∩ www.yakuyoke.or.jp/
川o・-・)ノ <先生!こんなのがありました! www.hokekyoji.com/ members.tripod.co.jp/hossyoji/index/ www.honmonji.or.jp/ www.maap.com/tanjoh-ji/ www.kuonji.jp/ www.butsuzou.com/jiten/sanmen.html www.butsuzou.com/list1/sanmen2.html www.butsuzou.com/list1/sanmen3.html www.butsuzou.com/keitai/sanmen-kz.html
- 298 名前:nobodyさん mailto:sage [03/08/19 17:06 ID:???]
- >>88の本読んだけど……
とりあえず 「固定長」のバッファをなぜかmallocした上にクリアすらせずに使うのと 関数の返り値を片っ端から捨てていくのと 入力データを長さもチェックせずにstrcpyで突っ込むのはやめて欲しい。 まあ、それを鵜呑みにしてコード書く奴も書く奴だけど。
- 299 名前:nobodyさん mailto:sage [03/08/22 01:40 ID:???]
- >>298
元々買う気なくて立ち読みしかしてないのでナンだけど、 どこで固定長のバッファをmalloc()してた? 興味本位で探してみたけどみつけらんなかったYOu
- 300 名前:nobodyさん mailto:sage [03/08/23 01:29 ID:???]
- >>299
スタックを圧迫しないと言うことで再帰とかのときに有利なのかも知れない。
- 301 名前:nobodyさん mailto:sage [03/08/24 04:11 ID:???]
- あとでreallocするつもりなら予め固定長でもmallocする必要があるし。
- 302 名前:nobodyさん mailto:sage [03/08/28 14:55 ID:???]
- Sygwinでロック関数が動きません・・・
- 303 名前:nobodyさん [03/08/31 16:08 ID:oQ0ZtH63]
- read.cgiのC言語バージョン作ったんだけど
配布したらアクセスどんどんくるかな? って思っているんです。 需要ありかしら? (今Perlでつくったやつ配ってるんですけどちょくちょく使っている人がいます)
- 304 名前:303 [03/08/31 16:11 ID:oQ0ZtH63]
- >>298
たしか88投稿したのは、おれだけど、多少上達してから それは思いました。 (っつうかそいつの本のまねしてやったら友達にセキュリティやべえぞって言われたんですね・・・)
- 305 名前:303 [03/08/31 16:12 ID:oQ0ZtH63]
- 今気づいた。
ここは普及スレだった。。。。。。。。。。
- 306 名前:nobodyさん mailto:age [04/01/27 13:55 ID:???]
- age
- 307 名前: mailto:sage [04/01/28 20:44 ID:???]
- てst
- 308 名前:nobodyさん mailto:sage [04/02/02 11:42 ID:???]
- 結局開発に時間がかかりすぎるとか
敷居が高いとかだろ WEBのためにC++覚える馬鹿(暇人)はいないし。 C#が普及すれば少しはCのCGI増えるかな?
- 309 名前:nobodyさん [04/02/02 16:06 ID:KHxdJaNy]
- >>308
ha?
- 310 名前:nobodyさん mailto:sage [04/02/02 16:42 ID:???]
- >>309
omaemona
- 311 名前:nobodyさん mailto:sage [04/02/10 19:56 ID:???]
- M$専用
- 312 名前:nobodyさん mailto:sage [04/02/11 01:13 ID:???]
- >>308
Cで開発しても、そんなに時間はかからない。デバッグにしてもさほどでは ない。開発に時間がかかるのは言語慣れしてないからだろう(漏れが Perl でやったら Cの倍以上かかる)。 敷居が高いのは認める。関連書籍は圧倒的に少ないし。コンパイラという時点 で決して低くはない。特に初心者は大変だろう。 Webプログラミングを目的として C++覚える人というのも確かに奇特だが、C++ を覚えていれば他にツブシも効くだろう。決して損な選択ではないと思う。
- 313 名前: ◆0UMFbJB2oM [04/02/12 18:21 ID:pt0vOHBR]
- そうだけれども・・・・
- 314 名前:nobodyさん mailto:sage [04/02/17 04:30 ID:???]
- >>303
需要はあるYO!
- 315 名前:nobodyさん mailto:sage [04/02/17 04:40 ID:???]
- >>268
> 同時にアクセスがあった場合、同一名称の環境変数は、それぞれブラウザ > ごとに違う値を保持するのかな??? POSTなり GETなりのリクエストがあってはじめて CGIが起動されるわけだから、起動されたプロセスで 「俺はどれだ?」なんて事を留意する必要は無い。ただ単一動作をするのみ。 いくつものブラウザからいくつものリクエストをされた場合は、それぞれ個別にプロセスが起動される だけだから、その時その時の環境変数を読めばよい。HTTPデーモンは、そういう風にしてくれるはずだ。 ・・・と、偉そうに書いたが、間違ってたら激怒キボンヌ。
- 316 名前:nobodyさん mailto:sage [04/02/17 13:36 ID:???]
- こーいう話題こそCGIスレ行きだと思うんだけどなー ままならぬものだw
同じCGIプログラムでも、Request毎に違うプロセスが起動されて そのRequestの発行したブラウザの情報が環境変数に設定れるよん
- 317 名前:nobodyさん mailto:sage [04/02/17 17:47 ID:???]
- こーゆう疑問を解消する事で、Cで CG I やる人が増えれば、スレタイには沿うんでないかと。
- 318 名前:nobodyさん mailto:sage [04/02/19 02:17 ID:???]
- >>317
なるほど。 って 伸びないスレだなw
- 319 名前:nobodyさん mailto:sage [04/02/19 13:48 ID:???]
- まぁ、だんだん暖かくなってきたしな。
- 320 名前:nobodyさん mailto:sage [04/02/19 18:08 ID:???]
- いやぁますますC言語日和で〜。
- 321 名前:nobodyさん mailto:sage [04/02/19 22:47 ID:???]
- Cでapacheモジュールを作る話題はどこに逝ったらいいですか?
- 322 名前:nobodyさん mailto:sage [04/02/19 23:29 ID:???]
- >>321
Linux板かUNIX板
- 323 名前:nobodyさん mailto:sage [04/02/20 00:10 ID:???]
- 一番詳しそうな人が見てそうなのはunix板のapacheスレ
- 324 名前:nobodyさん mailto:sage [04/02/20 01:29 ID:???]
- >>322-323
ありがd CGIが重い重いと言われてるので、 どうせCならapacheモジュールにしちゃえと思ってて、 WebProgだと思ったけどunix板ですか… ちょっとこわひ…
- 325 名前:nobodyさん mailto:sage [04/02/20 03:16 ID:???]
- unix板を開いたら
「彼女」「イブ」等のキーワードのスレを探せ。「雑談」でもいいが。
- 326 名前:nobodyさん mailto:sage [04/02/20 06:01 ID:???]
- >>325
重ね重ね産休 でも、聞く前になんとなく自己解決 apacheモジュールは軽すぎますなー
- 327 名前:nobodyさん mailto:sage [04/02/20 09:57 ID:???]
- >>325
ヽ( ・∀・)ノ ウンコー
- 328 名前:nobodyさん mailto:sage [04/02/22 04:18 ID:???]
- おれはCでURIデコードするときは、
%だったら続く2文字をテーブル変換するって方法使ってるよ。 テーブルは上の桁用と下の桁用をそれぞれ作って足し算。
- 329 名前:nobodyさん mailto:sage [04/03/05 04:48 ID:???]
- h o s h u
- 330 名前:nobodyさん mailto:sage [04/03/06 19:57 ID:???]
- 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 …
- 331 名前:nobodyさん mailto:sage [04/03/11 00:27 ID:???]
- EXEならではの利点があるはず。
socket使って2ちゃんねるのトップを取得してタグコピーして表示するとか。 この場合とくに意味は無いけど、面白い使い方をしている例希望。
- 332 名前:nobodyさん mailto:age [04/03/11 00:58 ID:???]
- EXEならではの利点
- 333 名前:nobodyさん mailto:sage [04/03/11 01:02 ID:???]
- まずは、"CGI"って何なのかを理解してくれ
- 334 名前:nobodyさん mailto:sage [04/03/11 01:04 ID:???]
- >>331
ドザ氏ね
- 335 名前:nobodyさん mailto:sage [04/03/11 09:01 ID:???]
- なんだ EXE ならではの利点って。釣りか?
インタプリタみたいな事をやるよりは速いかも、程度しか思いつかないが・・・。 とか言う漏れも C で CGI やってるわけだが。 だって Perl とか PHP で書くと、キレイなソースに出来ないんだもん・・・。<己れのスキル不足棚上げ
- 336 名前:nobodyさん mailto:sage [04/03/11 10:52 ID:???]
- 慣れだ、慣れ。
- 337 名前:nobodyさん [04/03/19 23:07 ID:wAGafw57]
- >>303
ttp://c.toshinari.net/cgi/bbs/mtbbs2/ これだね。
- 338 名前:nobodyさん mailto:sage [04/04/05 21:18 ID:???]
- 俺はC++で作ってるが、char *get_value("name");とかchar *get_cookievalue("name");といったのを
ひとまとめにしたクラスを作った。 まだマルチパートのPOSTに対応していない・・・
- 339 名前:nobodyさん mailto: [04/04/11 13:58 ID:???]
- おーい。どこかに簡単なサンプルというかCGIに特化した講座はないかい?
何からはじめたらいいのかわかんないよ。ググリ疲れました・・・。
- 340 名前:nobodyさん mailto:sage [04/04/11 14:10 ID:???]
- "CGI"とは何なのか知っていれば
サンプルも何も無いと思うけど。
- 341 名前:nobodyさん mailto:sage [04/04/11 14:57 ID:???]
- >>339
www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/
- 342 名前:nobodyさん mailto:sage [04/04/12 05:34 ID:???]
- >>341
ありがとう!
- 343 名前:918 mailto:sage [04/04/26 19:58 ID:???]
- >>335
Cならではというよりバイナリならではのほうが大きいのでは? 1、データベースなんかを作ったとき処理が速い。 2、大抵のCGI対応のサーバーなら使える。インタプリンタよりも多く対応(多分)。 3、インタプリンタはクロスサイトスクリプティングの危険があるが、バイナリなのでそれは無いっぽい。 そもそも、CGIの元祖はC言語世代らしい。
- 344 名前:nobodyさん mailto:sage [04/05/07 18:55 ID:???]
- ここの住人て
C/C++ CGIスレッド pc5.2ch.net/test/read.cgi/php/1077753522/l50 と100%かぶってる気もする
- 345 名前:nobodyさん mailto:sage [04/05/09 13:54 ID:???]
- >338
っていうかcookieは全部js操作でいい
- 346 名前:nobodyさん mailto:age [04/05/09 17:57 ID:???]
- ( ´,_ゝ`)プッ
- 347 名前:nobodyさん mailto:sage [04/05/18 05:37 ID:???]
- ところで多少は普及したのだろうか?
- 348 名前:nobodyさん mailto:sage [04/05/18 21:17 ID:???]
- サッパリサッパリ
- 349 名前:nobodyさん [04/05/25 05:52 ID:8qS/bgdw]
- フォームのデータをデコードするところで、
なんで16をかけたり、4ビットシフトしたりするのかが わからないんです。 あれはいったい何をしてるんでしょう。 ググってもググっても何も出てこないので。。。。
- 350 名前:nobodyさん mailto:sage [04/05/25 06:22 ID:???]
- '%23'を'#'に変換したりとかの話なら、URLエンコード/デコード。
- 351 名前:nobodyさん mailto:sage [04/05/25 16:56 ID:???]
- >>349
ググり方が足りないだけっちょ。 ttp://sometime.minidns.net/~ccgi/decode_encode.html より引用 > "%xy"という3バイトの文字列を16進数に変換する処理としては、 > 2バイト目を0x10倍(0x10をかけるか、4ビット左シフト)して3バイト > 目を加える、という処理方法が有名ですが、
- 352 名前:nobodyさん [04/05/26 01:19 ID:BPDOKhgc]
- >>351
サンクスです。 ググり方が足りない。。。。 反省します。。。。。
- 353 名前:nobodyさん [04/05/30 11:50 ID:AsPEp7PV]
- c++でcgi作ってます。コンパイルしてそのままcgiとして動かしていますが、
このようにweb用cgiを作るための便利な定番ライブラリって何かありますか?
- 354 名前:nobodyさん mailto:sage [04/05/30 13:23 ID:???]
- 洩れも調べ中
c++ならcgiccってのが上のほうに紹介あった気がする。 mm.apache.or.jp/pipermail/apache00-01/2000-December/002076.html
- 355 名前:nobodyさん mailto:age [04/05/30 13:41 ID:???]
- コンパイルしてからUPしても動かないときがあるよね。
まいっちんぐ
- 356 名前:nobodyさん mailto:sage [04/05/30 21:39 ID:???]
- tazthecat.net/~isaac/cgixx/
cgixx - BSD Licenseだそうだ。これから試してみるべ。
- 357 名前:nobodyさん mailto:sage [04/05/30 22:13 ID:???]
- cygwin->freeBSD用のクロスコンパイラの作り方をまとめました。
aaacafeで使えます。 D言語用に作ったのですが、c,c++も動きます。c,c++だけにしたければオプションでそうできます。 www.wikiroom.com/sakurai/?freebsd%A5%AF%A5%ED%A5%B9%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB 参考にしてください。 どっかデッカイデータ置いていいところあればバイナリでも配布できる気もするけど、 自分はもってないので、がんばってインストールしてみてください。 もうちょっと、手軽にクロスコンパイラが手に入れば、なぁ。 Linux版も似たような感じで作れると思いますがまだやっていません。 では。
- 358 名前:nobodyさん mailto:sage [04/05/30 23:37 ID:???]
- そう、クロスコンパイラをバイナリで配布できればいいんだ。
どうやったら、いいのか考えたら。 1.どっかデッカイデータを入れさせてくれるサイトを探す。Vectorとか。 問題はバイナリデータをメールで送るんだったような記憶がある。 規約読めってかんじだな。 2.P2Pで配信しちゃう。問題はちゃんと検索に引っかかってくれるかどうか。 やったことないのでわからん。 3.ソースフォージみたいなのに登録しておかせてもらう。 なんか、敷居高そうなのが問題ありかなぁ。 あと、ライセンスとかどうなるんだか、よーわからん。cygwinで作ったクロスコンパイラ のライセンスはどうしたらいいんだろうって問題もある。 この辺の問題をクリアしてあると、だいぶ普及するんじゃないかなぁ。
- 359 名前:nobodyさん mailto:sage [04/05/31 04:22 ID:???]
- >>357-358
ぐっじょーぶ!! ソースアップしてコンパイル結果のバイナリ、ダウソできるような 鯖たてたらどうだろ?自分で環境用意できない人には重宝するかも。
- 360 名前:357 mailto:sage [04/05/31 20:55 ID:???]
- >>359
それは危険だと思います。aaacafeはgccをcgiで動かせるそうですが。 危険を無視すれば面白いですよね。会員認証付きで、作ることになりますね。 アクティブXでeclipseをブラウザに取り込んで、cvsに入って、ぽいぽいと。 クロスコンパイラのバイナリ配信を可能にしました。 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用も作ろうと思いますが先人の知恵があるのでこれ理解してからにしようと思っていますが。 インストール手順もずっと楽になりました。 ただ、これで、問題のあるプログラムは作らないでくださいね。
- 361 名前:nobodyさん mailto:sage [04/05/31 21:54 ID:???]
- CでWikiクローン作ってるものだが、思った以上に難しいな。
- 362 名前:357 mailto:sage [04/06/01 08:59 ID:???]
- CでWikiクローンですか、、、。名前は、Cikiですかねぇ。
Dならあるですぞ。Diki。
- 363 名前:357 mailto:sage [04/06/01 09:01 ID:???]
- わぁ、すでにあったぁ。
ciki.nostdal.net/cgi-bin/ciki C++でできてるみたいですね。
- 364 名前:360 mailto:sage [04/06/02 09:37 ID:???]
- Eclipseうんぬんは、ちょっと妄想入ってますな。
でも、やっぱり危険だと思うし、自分で用意できない。 間違えて、無限ループされても困る。 wikiライクなエディタ付きwebベース開発環境を妄想してます。 能力がついて来てないのですが。 とりあえず、perlでできる事がdでもできてしまう 環境を作ることには意義があると思っています。
- 365 名前:nobodyさん mailto:sage [04/06/05 01:01 ID:???]
- CGIを作るならC++の方が適しているんでしょ?
なんとなくそう思っただけです。
- 366 名前:360 mailto:sage [04/06/05 17:03 ID:???]
- >>365
STLあたり使えば、文字列操作が楽でしょうからねぇ。と、私も思っただけ。
- 367 名前:nobodyさん mailto:sage [04/06/08 00:25 ID:???]
- フォーム入力の処理はヌル終端文字列の方が楽だったよ
データ構造にはstd::list使ったけど
- 368 名前:nobodyさん [04/06/08 23:58 ID:nLqW4woP]
- PHPのソースからbase64encode関数やらsplit関数を切り出して使ってる俺はアホですか?
- 369 名前:nobodyさん mailto:sage [04/06/09 00:14 ID:???]
- 普通
- 370 名前:nobodyさん mailto:sage [04/06/09 11:22 ID:???]
- yahooのシステムは主にCを使ってるらしいですね。
なんかメリットあるから使ってるんでしょうかね。
- 371 名前:nobodyさん mailto:sage [04/06/09 23:29 ID:???]
- とりあえずバイナリならソースが漏れないし触れる人間が多いからじゃない?
要件がはっきりしてるからこそ成せる技なんだろうけど。
- 372 名前:nobodyさん mailto:sage [04/06/10 02:01 ID:???]
- >C言語は、データベースを最も高速にアクセスできます
>ash.jp/db/ この言葉を100%信用しても大丈夫なのかな。
- 373 名前:nobodyさん mailto:sage [04/06/10 14:20 ID:???]
- うーむ。ただのCGIでコネクションをプーリングしないのと、Javaでコネクションをプーリングする、、、、。
どちらが速いんでしょうな。と思うD房でした。リンク先も読まずに、適当な発言。
- 374 名前:nobodyさん mailto:sage [04/06/11 19:53 ID:???]
- 実際問題、鯖への負荷はどうなの?
- 375 名前:nobodyさん mailto:sage [04/06/12 00:29 ID:???]
- >>372
そこ見てみたけど、言葉使いがモニョモニョしてるな。本人は分かってるんだろうけど、 分かってない人のために書いたら、ちょっと不思議な文章になりました、って感じがする。 Cで高速にアクセス出来るのは確かだが、ヘタレなコードなら遅くなるし、最も高速に アクセスしたければアセンブラで組むだろう(実用的な意味はほとんど無いが)。 だから、厳密に言えば「最も高速」イコール Cではないのだが、一般的に言えば 「そう言って差し支えない」レベルの話だ、ということだろう。
- 376 名前:nobodyさん mailto:sage [04/06/12 01:10 ID:???]
- 現状ではApacheモジュールがWeb至上最速&最低負荷でしょう。
フォーム受け取り系で使ってるが恐ろしく速い。 ブラウザ上の感触が10行くらいのプレーンテキストを読んだ感じに似てる。 おなじ処理をC++/CGIで試したがやはり最初のコストがでかいのでモタつく。
- 377 名前:nobodyさん mailto:sage [04/07/06 06:41 ID:???]
- FastCGIは?
- 378 名前:nobodyさん [04/08/09 18:38 ID:uDC/dB7t]
- 保守あげ
- 379 名前:nobodyさん mailto:age [04/09/07 08:23 ID:???]
- 要するに、C言語でCGI作ろうとした場合、perlのcgi-lib.pl
(CGI.pm)にあたるものがライブラリで用意されてないのが 痛い。あと、jcode.pl(Jcode.pm)。 定番のcgi.cとかjcode.cてないんでしょうか。
- 380 名前:nobodyさん mailto:sage [04/09/07 08:31 ID:???]
- >>379
>ライブラリで用意されてないのが痛い。 藻前が探索能力がないのが痛い。 CGIのライブラリも日本語変換のライブラリもググれば出てくる。 それにCでCGIを作る様なヤツは、自分専用CGIライブラリくらい作る。
- 381 名前:nobodyさん mailto:sage [04/09/07 09:01 ID:???]
- Cは豊富にあるほうだと思うけどな。
たいていなんでも揃ってるし。 探せないやつが痛いのは間違いない!
- 382 名前:nobodyさん mailto:sage [04/09/07 09:03 ID:???]
- >>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作ってみまつ。
- 383 名前:nobodyさん mailto:sage [04/09/07 09:06 ID:???]
- >>381
ども、結構、あるんですね。 C/C++言語によるCGIプログラミングの設計入門(ttp://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/) が参考になりそう。よし、やるど。
- 384 名前:上級者 [04/09/07 14:32 ID:BeqquvBt]
- PHP言語を使って。
ブラウザでLINUXPASSWORDを変えたいのですが どうしたらいいのでしょうか? LINKX シャドーパスワードなどあって 複雑でわかりません・・・ どうか教えてください お願いします
- 385 名前:nobodyさん mailto:sage [04/09/07 14:46 ID:???]
- >>384 スレタイ読み直せ
釣られた?
- 386 名前:nobodyさん mailto:sage [04/09/07 15:54 ID:???]
- >>385
彼はプロです。
- 387 名前:nobodyさん mailto:sage [04/09/07 16:10 ID:???]
- >>384
webminでhttps://localhost:10000/にアクセス。 以上。
- 388 名前:nobodyさん mailto:sage [04/09/07 16:29 ID:???]
- >>384
さすがは上級者だ。 しかし本当のプロならもっと獲物のたくさんいる板で釣る。
- 389 名前:nobodyさん mailto:sage [04/09/07 16:34 ID:???]
- CではPerl見たいな文字列操作が面倒すぎだな。
C++になるとまだマシだけど。C++用の便利なライブラリって知らない? 正規表現とかあるんだろ
- 390 名前:nobodyさん mailto:sage [04/09/08 00:54 ID:???]
- >>389
面倒なら自作すればいいじゃなーい。
- 391 名前:nobodyさん mailto:sage [04/09/08 04:11 ID:???]
- >>389
boost知らないの?
- 392 名前:nobodyさん mailto:sage [04/09/08 09:12 ID:???]
- >>389
dyaregexp.hはboostより軽いちゅうわな。 ttp://hp.vector.co.jp/authors/VA028375/junkbox/dyaregexp.html
- 393 名前:nobodyさん mailto:sage [04/09/08 10:37 ID:???]
- 入力はUTF-8のみ有効、それ以外は無視。
- 394 名前:nobodyさん mailto:sage [04/09/08 12:24 ID:???]
- は?
- 395 名前:nobodyさん mailto:sage [04/09/08 15:14 ID:???]
- www.google.com/search?num=50&hl=ja&lr=lang_ja&ie=shift_jis&q=dyaregexp
この知名度はヤバイ
- 396 名前:nobodyさん mailto:sage [04/09/08 15:18 ID:???]
- www.vector.co.jp/authors
- 397 名前:nobodyさん mailto:sage [04/09/08 23:56 ID:???]
- っていうかC++でCGI作るならこれが基本じゃないの?
www.cgicc.org/
- 398 名前:nobodyさん mailto:sage [04/11/08 18:55:43 ID:???]
- あゃしぃ人を発見
ttp://labo.cherrybooks.net/
- 399 名前:nobodyさん mailto:sage [04/11/09 08:58:35 ID:???]
- 宣伝を発見
- 400 名前:nobodyさん mailto:sage [04/11/13 03:53:32 ID:???]
- 宣伝の発見者を発見
- 401 名前:nobodyさん mailto:sage [04/11/22 14:44:59 ID:???]
- 宣伝の発見者の発見者を発見
- 402 名前:nobodyさん mailto:sage [04/11/22 21:38:13 ID:???]
- >>401
あのね、それ皆、書こうと思って遠慮してたんだけど・・・ お詫びにネタ振れよ。
- 403 名前:401 mailto:sage [04/11/22 23:52:40 ID:???]
- >>402
gomen. ima, server karadakara, nihonngo nyuuryoku dekinai...
- 404 名前:nobodyさん mailto:sage [04/11/23 00:02:35 ID:???]
- >403
仕事しろ!!
- 405 名前:nobodyさん [04/12/14 17:59:04 ID:upKknTNA]
- >>401
宣伝の発見者の発見者の発見者を発見
- 406 名前:402 mailto:sage [04/12/14 23:08:12 ID:???]
- サーバーに日本語入力入れてしまいました。
いいのかな…
- 407 名前:nobodyさん mailto:sage [04/12/15 01:51:06 ID:???]
- いいよ。サーバーにX入れる時代だし
- 408 名前:nobodyさん mailto:sage [04/12/16 23:30:11 ID:???]
- 自宅サーバにX入れてます
Xサーバ
- 409 名前:nobodyさん mailto:sage man [04/12/17 01:56:16 ID:???]
- それよりDistcc入れて分散コンパイルに……(^^;;;
- 410 名前:nobodyさん [04/12/27 15:06:04 ID:2ZZk8VkA]
- WinXPでコンパったCGIがFreeBSDで動きません
- 411 名前:nobodyさん mailto:sage [04/12/27 17:17:19 ID:???]
- つまらんネタだな
- 412 名前:nobodyさん mailto:sage [04/12/29 22:02:06 ID:???]
- >>410
つ[Perl] お前さん、Cはやめておけ
- 413 名前:nobodyさん mailto:sage [04/12/31 11:29:26 ID:???]
- >>412
WINアプリがUNIXで動かないのは知ってるんですけど、なんとかならないですかね… クロスコンパイラは都市伝説、PCはPen200、64MBのノートだからUNIX系OSはボツ…
- 414 名前:nobodyさん mailto:sage [04/12/31 16:55:12 ID:???]
- Pentium200 64MBって、ちょっと前までは「PC-UNIXで再活用」の代表みたいなスペックだけど。
GUIは苦しいかもしれないけどね。
- 415 名前:nobodyさん mailto:sage [04/12/31 17:27:43 ID:???]
- X使わなきゃ全然大丈夫でそ
- 416 名前:nobodyさん mailto:sage [05/01/02 13:12:22 ID:???]
- >クロスコンパイラは都市伝説
藻前はPerlでも使っとけ
- 417 名前:nobodyさん mailto:sage [05/01/02 15:32:49 ID:???]
- ソースありますか?
- 418 名前:nobodyさん mailto:sage [05/01/02 22:40:11 ID:???]
- tinyurl.com/23y5e
- 419 名前:nobodyさん mailto:sage [05/01/02 23:07:18 ID:???]
- cssのクラス名がふざけてる
- 420 名前:nobodyさん mailto:sage [05/01/05 12:39:03 ID:???]
- >>413
cygwin
- 421 名前:nobodyさん mailto: [05/01/20 11:30:37 ID:???]
- Cを昔から使ってたので最近PERLの掲示板なんかを自作しようと
環境は自鯖仕様でWin2K+Apache2+VisualC++7 GUIならではの開発環境でデバッグが簡単になる方法ってあるんですかね? 自分はVC6使ってたのでVC7の.netによる恩恵がよるわかりません;; 実行ファイルをCGIとして動かしてVCのデバッグトレース機能なんてできます? 用は実行ファイルの出力先にttp://hoge.com/abc.exeというのをGUIでデバックとか・・ UNIXは知らんのですがWinsockを利用して細かいことしようとすると 画面出力で print "ENV= なんてしてるもので作業効率最悪。 どっちかとVCスレの質問かもしれませんがすまそ・・ あと上げてすんま孫
- 422 名前:nobodyさん mailto:sage [05/01/20 12:35:15 ID:???]
- C言語ってカックいー? つおい?
おにぎりの具で言うと何?
- 423 名前:nobodyさん mailto:sage [05/01/20 21:03:09 ID:???]
- >>422
カックイーかどうかはしらないけど おにぎりの具で言うとうめぼしにマヨネーズって感じじゃない?
- 424 名前:nobodyさん mailto:sage [05/01/21 01:48:24 ID:???]
- CでCGIはBoF対策とか糞めんどくさそうでアフォっぽいけど、
C++でCGIはアリかもね
- 425 名前:nobodyさん mailto:sage [05/01/29 14:17:48 ID:???]
- BoFの意味が分からない俺は
- 426 名前:nobodyさん mailto:sage [05/01/30 00:03:16 ID:???]
- たぶん、デザインパターンの本のこと
じゃなくて、buffer overflowだと思う。
- 427 名前:nobodyさん mailto:sage [05/01/30 11:45:02 ID:???]
- なるほど。
でも、Cでもバッファオーバーフロー対策なんて面倒という程大層なものじゃないが…
- 428 名前:nobodyさん mailto:sage [05/01/30 18:51:23 ID:???]
- 俺もそう思う。
逆に、「C++だからバッファオーバーフローの心配はあまりない」 等と言う人の作ったものの方が、よっぽど危険だよ。
- 429 名前:nobodyさん mailto:sage [2005/04/03(日) 17:49:44 ID:???]
- このスレのおかげでふんぎりがついてCで画像掲示板作ってみたよ。
やっぱり慣れた言語が一番楽チンだね。組むのもデバッグも。
- 430 名前:nobodyさん mailto:sage [2005/04/03(日) 22:52:40 ID:???]
- うpきぼん
- 431 名前:nobodyさん mailto:sage [2005/10/07(金) 11:12:03 ID:???]
- 鯖の負担だけ考えたらCとPerlどっちが軽いの?
- 432 名前:nobodyさん mailto:sage [2005/10/11(火) 02:40:04 ID:???]
- CでApacheモジュール
- 433 名前:nobodyさん mailto:sage [2005/10/17(月) 16:43:58 ID:???]
- こんなスレあったんだ・・・。
俺はとある企業で5年ほど、CのCGI開発をしていたよ。 某陸√系のサイトはほとんどがCのCGIで動いてるし。 相当無理なことやってるけど、相当無理ができることも事実だったりする。
- 434 名前:nobodyさん mailto:sage [2005/10/25(火) 00:31:01 ID:???]
- 何言語で書こうがCGIである限りはCGIで出来る事しかできない
- 435 名前:nobodyさん mailto:sage [2005/11/03(木) 12:08:29 ID:???]
- ファイルIOを発生させる処理でもperlとかわんないのかな
ディレクトリ一覧をサブディレクトリまで 取得して、htmlタグを付与して出力するとか考えとるんですが。 perlだとおそいorz
- 436 名前:nobodyさん mailto:sage [2005/11/03(木) 14:26:14 ID:???]
- そんなもんページ表示させるたびにやらせたら遅いに決まってる。
キャッシュくらいしろ。
- 437 名前:nobodyさん mailto:sage [2005/11/03(木) 23:01:33 ID:???]
- >>435
- 438 名前:nobodyさん [2006/02/23(木) 13:35:40 ID:oh1e7jqD]
- すさまじく書き込みが少ないスレだなー。
かれこれ10年ぐらいCでWebアプリの開発やってる。 いろんなライブラリを開発してたら、ソースが2MBにもなってしまった。 このライブラリだけでCGIに必要な機能はほぼ提供できるところまで来た。 PHPやPerlと変わらないレベルで開発できる。 このライブラリを公開したら面白いことになりそうだけど、 企業秘密満載だから、さすがに無理か。
- 439 名前:nobodyさん mailto:sage [2006/02/23(木) 15:33:14 ID:???]
- >>438
ここはおまいさんの日記帳じゃないよ。
- 440 名前:nobodyさん mailto:sage [2006/02/25(土) 13:19:21 ID:???]
- >>438
くれ
- 441 名前:nobodyさん [2006/05/06(土) 20:21:57 ID:FWiKF0Gu]
- いいねぇ。
>>企業秘密満載だから、さすがに無理か。 CPANとかある方がCからみたら異質なんだろうな。 一からライブラリ作るのは面倒だからAPRでもつかってみるかな。
- 442 名前:nobodyさん mailto:sage [2006/06/04(日) 14:34:28 ID:???]
- みんなヲレcgiライブラリの再生産遣ってそうだよな。
そろそろ基本的な所だけでも共有しないか?
- 443 名前:nobodyさん mailto:sage [2006/06/04(日) 16:22:13 ID:???]
- それなら、まずは442のライブラリから共有するとしようか。
- 444 名前:nobodyさん mailto:sage [2006/06/07(水) 05:48:07 ID:???]
- 基本的っつーとどのヘン?
昔のヤツをひっくり返して見つかったらアップしてみる。
- 445 名前:nobodyさん mailto:sage [2006/06/07(水) 14:16:56 ID:???]
- 普及が目的なら
基本的なライブラリの共有と並行して、 どうすればC言語でcgiが書けるのかという基本の解説がいるね。 hello worldのC言語cgi版みたいなの。
- 446 名前:nobodyさん mailto:sage [2006/06/08(木) 20:50:36 ID:???]
- printbody("Hello World!");
だけで、 <HTML> <BODY> Hello World! </BODY> </HTML> ぐらいは、生成してくれるとかさ。
- 447 名前:nobodyさん mailto:sage [2006/06/09(金) 10:14:52 ID:???]
- >>446
それ必要か・・・? templateエンジンのが良くね?
- 448 名前:nobodyさん [2006/06/09(金) 16:12:46 ID:mYrnmPP6]
- テンプレートはありませんかねぇ?
- 449 名前:nobodyさん mailto:sage [2006/06/10(土) 08:37:10 ID:???]
- テンプレートエンジンってどこにあるの?
stdio.hには無かった。
- 450 名前:nobodyさん mailto:sage [2006/06/11(日) 02:28:25 ID:???]
- CでMySQLやらPostgreSQLに接続するにはどうしたらいいんだろ?
TCP/IPの通信部分から書かなきゃダメかなぁ?
- 451 名前:nobodyさん mailto:sage [2006/06/11(日) 08:48:30 ID:???]
- >>450
そこだけphpに渡してる(笑
- 452 名前:nobodyさん mailto:sage [2006/06/11(日) 09:10:11 ID:???]
- Cならmysqlにライブラリ付属してますが?
ドキュメントぐらい読んだら?
- 453 名前:nobodyさん mailto:sage [2006/06/11(日) 10:43:01 ID:???]
- DBの方のマニュアルにあったのか!
thx!!
- 454 名前:nobodyさん mailto:sage [2006/06/18(日) 20:19:39 ID:???]
- ふぇどら3でコンパイルしたCGIが
You don't have permission to access /index.cgi on this server. っていわれてうごかないんだ。 httpd.confに Options ExecCGI AddType application/x-httpd-cgi .cgi って記述してるし、パーミッションも755になってるのにどうして?
- 455 名前:nobodyさん mailto:sage [2006/06/19(月) 00:00:15 ID:???]
- >>454
SELinuxとかどうなってる? 使ってないの前提として、パーミッションてどこのパーミッションだ? ディレクトリの方はどうなってる? 所有権は? 迷ったら777試せ
- 456 名前:454 mailto:sage [2006/06/20(火) 11:17:11 ID:???]
- SELinuxも無効にしたんだけどダメだ・・・
Windowsのxampp上では動くのに・・・ 777もやってみたけどダメだった 所有権は777だから別に違っても大丈夫なはず ディレクトリは見てなかったけど同ディレクトリ以下の phpは走るし大丈夫なはずじゃ・・・あ 帰ったら試したいことが出来ました。 まだ解決してないけど>>455さんまりがとう('∀`)
- 457 名前:nobodyさん mailto:sage [2006/08/06(日) 17:59:11 ID:???]
- cgiつーかC言語のウェブアプリケーションって無いよね。
ぐぐったらウェブオブジェクト4.5とか出て来たけど、これはマカ専用?
- 458 名前:nobodyさん mailto:sage [2006/10/20(金) 15:32:14 ID:???]
- >>457
使ってる企業は多いだろうけど、 目的の一つとしてソースをクライアントに見られずに済む というのがあるだろうから、どこも非公開なんだと思う。
- 459 名前:nobodyさん mailto:sage [2006/11/11(土) 15:32:43 ID:???]
- >>457
WebObjects4.5はWinNT系でも動くけど、ObjCはクセがあるから習得には個人差があるかも。
- 460 名前:nobodyさん mailto:sage [2007/04/30(月) 03:27:37 ID:???]
- CGI作っている途中だが、何かと面倒だな。
Cだと たしかに作業量は多いね。 スクリプト系の方がいいのかな。
- 461 名前:nobodyさん [2007/07/23(月) 21:41:06 ID:b9YG4RnE]
- age
最近、Cで書かれた通販システムを見かけたよ。
- 462 名前:nobodyさん mailto:age [2007/07/24(火) 09:29:08 ID:???]
- >>772
$body = preg_replace('/([0-9]+)/', $hoge_array[\\1], $body); echo $body; で「¥」が使えませんってエラーがでるけど、エラーをひょうじしなければ目的の結果は得られる…… どうやってエラーださないようにするか…
- 463 名前:nobodyさん mailto:sage [2007/11/14(水) 03:29:16 ID:???]
- dat落ち防止
- 464 名前:nobodyさん [2008/01/08(火) 20:51:35 ID:JKoPEtVY]
- 保守
- 465 名前:nobodyさん mailto:sage [2008/01/11(金) 00:42:29 ID:???]
- #include <stdio.h>
int main() { printf("Content-Type: text/html\n\n"); printf("<HTML><BODY>\n"); printf("保守\n"); printf("</BODY></HTML>\n"); return 0; }
- 466 名前:nobodyさん mailto:sage [2008/01/28(月) 15:21:41 ID:???]
- ほ
- 467 名前:nobodyさん [2008/03/05(水) 00:20:30 ID:SOAastXQ]
- 今からCでCGI勉強しようと思うけど
無駄?
- 468 名前:nobodyさん mailto:sage [2008/03/05(水) 03:04:37 ID:???]
- >>467
かなり大変だという覚悟があるならどうぞ。 自作ライブラリを既に持ってる人じゃないと、 一般的な用途ではメリットは少ないかも。
- 469 名前:nobodyさん mailto:sage [2008/03/06(木) 01:30:58 ID:???]
- ありがとさんです
大変そうだけど 楽しそうだからやってみようかな しかしCの人は優しい人が多い気がする
- 470 名前:nobodyさん mailto:sage [2008/03/09(日) 17:09:46 ID:???]
- 俺ブログ書くほどボキャブラリー富んでないからCGI無しのサイトなんて
考えられね;
- 471 名前:nobodyさん mailto:sage [2008/06/10(火) 14:33:36 ID:???]
- おはよう。今日からここで自習していい?いいよね。
とりあえず出力なんだけど、printfとかのf系出力は、stdout に出せばうまくいくね。でもwrite(fileno(stdout),...はダメみたいだな。 とりあえず今日まで勉強したまとめ。 標準系 content-typeとかのmime header出力\n\n 本文 return 0; 異常系 printf( "status: 番号\n\n"); 本文 exit(0);
- 472 名前:nobodyさん mailto:sage [2008/06/11(水) 20:03:02 ID:???]
- 続き。
エラーの出し方。 printf( "status: 404....\n\n");
- 473 名前:nobodyさん mailto:sage [2008/06/12(木) 07:23:28 ID:???]
- >>471
じゃー、私も一つ。 セグメンテーション違反などでCGIが落ちて、 どこで落ちてるか分からない時は、 デバッグ用の表示と fflush(stdout); をちょくちょく実行すると良い。
- 474 名前:nobodyさん mailto:sage [2008/06/13(金) 16:10:07 ID:???]
- >>473
なるほどですね。 fflushall()ってもうないんでしたっけ? ・パース文字列の切り分け。これが簡単かも。 first_string = strtok(string,"=&"); second_string = strtok(NULL,"=&"); .... リターンがNULLまで、繰り返しするのが良いかも。 ・デバッグ用マイクロ秒表示 make_datetime_string(date_and_time); gettimeofday(&tv,NULL); snprintf((char*)str, sizeof(replace_date_and_time), "\n%s.%06d[%d] ", date_and_time, (int)tv.tv_usec, getpid() ); 結局mod_xsendfile使っちゃいましたが、sendfile apiって早そうですねー。 これならCGIでもパフォーマンスあがるかも。
- 475 名前:普及された人 [2009/03/18(水) 02:24:13 ID:moAFEnFy]
- 計算量や文字列処理の非常に多いプログラムの速い順(2度目以降のアクセス)
C -> apache module FastCGI + C CGI + C SpeedyCGI + Perl mod_perl FastCGI + Perl CGI + Perl mod_python mod_php FastCGI + Python CGI + Python mod_ruby FastCGI + Ruby CGI + Ruby 特徴として言語自体の速度差が順位を決める
- 476 名前:普及された人 [2009/03/18(水) 02:25:24 ID:moAFEnFy]
- 計算量や文字列処理の割と多いプログラムの速い順(2度目以降のアクセス)
C -> apache module FastCGI + C SpeedyCGI + Perl mod_perl FastCGI + Perl mod_python mod_php mod_ruby FastCGI + Python FastCGI + Ruby CGI + Perl CGI + C CGI + Python CGI + Ruby 特徴として、ノーマルなCGIは極端に遅く、Perlの洗練された完成度の高さが伺える
- 477 名前:普及された人 [2009/03/18(水) 02:25:58 ID:moAFEnFy]
- 計算量や文字列処理の少ないプログラムの速い順(2度目以降のアクセス)
C -> apache module FastCGI + C SpeedyCGI + Perl mod_perl mod_php FastCGI + Perl mod_python mod_ruby FastCGI + Python FastCGI + Ruby CGI + Perl CGI + Python CGI + Ruby CGI + C 特徴として、動作の前段階のメモリ上で動作可能な状態になるまでの速度差(レスポンスの良さ)が順位を決める
- 478 名前:普及された人 [2009/03/18(水) 02:26:35 ID:moAFEnFy]
- 使用メモリの少ない順
C -> apache module FastCGI + C SpeedyCGI + Perl mod_php mod_perl mod_python mod_ruby FastCGI + Perl FastCGI + Python FastCGI + Ruby CGI + Perl CGI + Python CGI + Ruby CGI + C 特徴として、提供方法にかなり影響される
- 479 名前:普及された人 [2009/03/18(水) 02:27:14 ID:moAFEnFy]
- サーバの環境構築の速い順
C -> apache module (何も手間なし) mod_php (apacheに標準で付いていることが多い) CGI + Perl (apacheの設定ファイル変更) CGI + C (apacheの設定ファイル変更) CGI + Python (Linuxインストールで標準で付いていることがある&apache設定) CGI + Ruby (自分でインストール&apache設定) mod_perl (自分でインストール&apache設定&モジュール起動) mod_python (自分でインストール&apache設定&モジュール起動) mod_ruby (自分でインストール&apache設定&モジュール起動) SpeedyCGI + Perl (自分でインストール&apache設定&モジュール起動) FastCGI + Perl (自分でインストール&apache設定&モジュール起動&コード宣言付加) FastCGI + Python (自分でインストール&apache設定&モジュール起動&コード宣言付加) FastCGI + Ruby (自分でインストール&apache設定&モジュール起動&コード宣言付加) FastCGI + C (自分でインストール&apache設定&モジュール起動&コード変更)
- 480 名前:普及された人 [2009/03/18(水) 02:28:00 ID:moAFEnFy]
- プログラムを作る速度の速い順(難易度?)(初めてのプログラミング)
mod_php (何も考えずHTML組み込みからすぐに始められる) mod_ruby (Rubyを知っていれば、すぐに始められる) CGI + Ruby (パーミッションとか知らないといけない) FastCGI + Ruby (宣言付加しないといけない) mod_python (Pythonを知っていれば、すぐに始められる) CGI + Python (パーミッションとか知らないといけない) FastCGI + Python (ド宣言付加しないといけない) CGI + Perl (パーミッションとか知らないといけない) SpeedyCGI + Perl (宣言付加しないといけない) FastCGI + Perl (宣言付加しないといけない) mod_perl (Perlを知っていても制約が多い) CGI + C (面倒) FastCGI + C (逐次動作可能プログラムにしないといけない) C -> apache module (モジュール化の手間がかかる)
- 481 名前:普及された人 [2009/03/18(水) 02:29:05 ID:moAFEnFy]
- module系はApacheに直接組み込むので、レスポンスは良いがセキュリティの観点から考えると極力避けたい。
速度やサーバ負荷の観点から、ノーマルなCGIも極力避けたい。 性能第一、開発効率第二で考えた場合は、 FastCGI + C が良いが、開発効率を考えると SpeedyCGI + Perl も捨てがたい。 開発効率第一、性能第二、セキュリティはあまり考えない場合は、 mod_php もあり。 開発効率も良く、楽しむなら、 FastCGI + Python 、 FastCGI + Ruby で決まり。(私は FastCGI + C で楽しめますが) ということで、 1、性能オタクの人にお勧め FastCGI + C 2、C言語しか知らない人にお勧め FastCGI + C 3、C言語が面倒でなかったり、面倒なことが嫌いではない人にお勧め FastCGI + C 4、C言語の達人にお勧め FastCGI + C 5、セキュリティを気にしながら質の高いサイト構築をしたい人にお勧め FastCGI + C 6、100%完璧なセキュアプログラムを作れる人にお勧め C -> apache module 7、組み込み系好きの人にお勧め C -> apache module 8、チャレンジャーにお勧め C -> apache module なのです。 あ、6〜8はmoduleだからCGIじゃないか。。。 私はURLデコードもエレメント抽出も全て自分でコードを書きました。 一つ一つの動作が理解できるのでC言語でのCGI作りはめちゃめちゃ面白かったです。 皆さん是非CでCGI(と言っても私のお勧めは FastCGI + C ですが)をしていきましょう! なお、上記ランキングは勝手な私見ですので、当てにはなりませんので、ご了承ください。 あ、Java忘れてました。
- 482 名前:nobodyさん mailto:sage [2009/03/18(水) 08:07:29 ID:???]
- 今後マシン性能が向上すればノーマルCGIもありになるとは思うが
- 483 名前:普及された人 [2009/03/18(水) 14:10:55 ID:XMWgki/Q]
- SSDなどストレージの性能が向上して、
メモリと同等レベルの速度がでるようになれば、 ノーマルCGIもありだと思います。 現在でもRAM Disk化すればそれは実現できます。 特にCPU負荷の大きい処理ではノーマルCGIでも C言語の選択は効果的です。 それでも、毎回ストレージにアクセスして、 プログラムを読み込み、プロセスを生成し、 実行後プロセスを破棄するノーマルCGIよりも、 プロセス生成済みの状態で、メモリに常駐して、 逐次再利用可能状態でプロセスの破棄が必要の ないFastCGIの方が相当レスポンスが良いし、 ストレージに全くアクセスせずに動作するし、 プロセス生成や破棄のCPU資源を必要としないので 色々な意味でサーバ負荷も激減するので、 より良い選択肢だと思います。
- 484 名前:普及された人 [2009/03/18(水) 14:11:37 ID:XMWgki/Q]
- ノーマルCGI → FastCGI + C は無料で簡単
(日本のサイトでは情報が全くといっていい ほどないので私は苦労しましたが、手順自体 は簡単です)にできるチューニングですので、 MyServerを持っていて、C言語でCGIを作って いる人はやるべきだと思います。 PerlならFastCGIよりSpeedyCGIの方がより良い 選択肢だと思いますし、激重のRubyの場合は FastCGIは必須と言ってもいいでしょう。 moduleタイプはWebServer(apacheなどの プログラムの方のことです)内部で動作させる ので、より高速ですが、プログラムのバグが WebServer全体に影響しますので、危険度を考え れば、選択肢からはずした方が無難に思えます。 CGIタイプの方が間違いなく絶対に安全です。
- 485 名前:普及された人 [2009/03/18(水) 14:14:04 ID:XMWgki/Q]
- そう考えると、FastCGI + C は現在考え得る
サーバサイドプログラミングの中で最も高速 かつ安全な、まさに頂点に立つ方式だと考えます。 もちろん今の時代でC言語が使えるということは、 バッファオーバーフローの回避やコード部分に おけるアルゴリズムの最適化などができることが 最低限の必要条件だと思いますが。 そうでなければ、高速かつ安全とは言えませんので。
- 486 名前:普及された人 [2009/03/18(水) 14:18:12 ID:XMWgki/Q]
- ということで、皆さん、C言語のCGIをどんどんやって普及させましょう!
- 487 名前:nobodyさん mailto:sage [2009/03/18(水) 20:57:18 ID:???]
- 誰とは言わないがアセンブラで書いてる人もいたな
- 488 名前:nobodyさん mailto:sage [2009/03/20(金) 05:46:26 ID:???]
- CGI + C より CGI + Perl / Python / Ruby の方が
メモリ使用量や実効速度が速いというのは変。 あとプロセスを起動するたびに毎回HDDにアクセスとかありえない。 キャッシュに残ってるよ。 起動したら1行printして終わるだけのプログラムを、 CとPerlとbashスクリプトで作って、それぞれ起動してみたけど、 やはりPerlの方が時間がかかる。 $ time ./test.app real 0m0.001s user 0m0.000s sys 0m0.000s $ time ./test.pl real 0m0.002s user 0m0.000s sys 0m0.001s $ time ./test.sh real 0m0.001s user 0m0.000s sys 0m0.001s
- 489 名前:nobodyさん mailto:sage [2009/03/20(金) 05:50:52 ID:???]
- あと私も自分で一通りのAPI書いたけど、
そのCGIでtimeを測ってみても、↓の通り。 ソースコードで2.2MB、バイナリで350KBとかなり大物だけど、 それでもphpの実行バイナリ3Mとかと比べれば、軽いもんだね。 real 0m0.001s user 0m0.001s sys 0m0.000s
- 490 名前:普及された人 [2009/03/21(土) 12:48:40 ID:yqEMcysT]
- >488さん
>CGI + C より CGI + Perl / Python / Ruby の方がメモリ使用量や実効速度が速いというのは変。 その通りでした。 間違えて記載してしまいました。 実際は少なくとも CGI + Perl よりも全て上にランキングされます。 FastCGI + ? に関しては状況によるかと思いますが。 >あとプロセスを起動するたびに毎回HDDにアクセスとかありえない。 >キャッシュに残ってるよ。 OSやハードディスクの行うキャッシュに関しては、他の要因で追い出されることが考えられますので、無視して記載しました。 それまで入れてしまうと、CGI自体の動作やFastCGI自体の動作やSpeedyCGI自体の動作やmodule型自体の動作の説明ではなくなってしまいますので。 CGI→エグゼキュートやインタプリタ+スクリプトをストレージから読み込み実行 FastCGI→エグゼキュートやインタプリタ+スクリプトをプロセスとしてメモリに常駐させそれを実行 SpeedyCGI→バイトコードをプロセスとしてメモリに常駐させそれを実行 module型→エグゼキュートやインタプリタをWebServerのModuleとして組み込みメモリに常駐させ、スクリプトはストレージから読み込み実行 という風にそれぞれの機能を説明したかったのでそう記載しました。
- 491 名前:nobodyさん mailto:sage [2009/03/21(土) 15:47:08 ID:???]
- >>490
なるほど。 私のCGIもapache moduleかFastCGIにしたいんだけど、 CGI専用にAPI開発したから、メモリ解放が手抜きすぎて無理だw
- 492 名前:普及された人 [2009/03/21(土) 21:30:03 ID:yqEMcysT]
- 相当大きなものなのでしょうか?
でも、それだけの実力者なら、時間は多少かかるものの簡単にできるのではと思います。 私の場合は、最初はプログラムの中でFastCGI仕様にしようとやっていたのですが修正が多すぎたので、main関数自体を別関数に変えてFastCGI仕様にしたらかなり楽に解決できました。 外部変数さえなければ、この技(というほどのものでもないですが)は有効だと思います。 apache moduleとして組み込むのは、一人で開発してますので、チェック機構(自分自身)に信頼がおけないのでやらないことにしました。 C言語で作る場合、FastCGIとmodule型は速度的にそれほど大差がない(処理速度は同じで、結果をWebServerプロセスに渡す渡し方の差しかない)ので、どちらでも良いのでしたらFastCGIを私はお勧めします。 スクリプト言語で組むなら、圧倒的にSpeedyCGIが抜きん出て、FastCGIのスクリプトを常駐させるアドバンテージとmodule型のスレッド通信のアドバンテージが相殺してあまり大差ないようですが。 いずれにしても、C言語でCGIが組めるのは(その根性があることこそが)大きなアドバンテージですので、お互いに頑張って良いものを作って普及させましょう!
- 493 名前:nobodyさん mailto:sage [2009/03/22(日) 04:05:46 ID:???]
- >>492
> 相当大きなものなのでしょうか? そだねー。 フォーム受け取り、XML-RPC、クッキー、 MD5、各種暗号復元化、base64、文字コード変換、絵文字、 いろいろなDBに対応したモデル、それのコントローラ、HTML埋込ビュー、 画像処理、セッション、ユーザ処理、画像認証、各種ユーティリティとかあるよ。 いくつかはUNIXでメジャーなAPIの呼び出しで実現してる。 もう設計からして、メモリ解放を前提としてないから、 もしやるとしたら、参照カウンタ+ガベージコレクションの実装かな。
- 494 名前:普及された人 [2009/03/22(日) 17:50:13 ID:uHOLJ9Dp]
- >>493
素晴らしい財産の数々、驚きました。 確かに、これら全てを改変するというのは重労働ですね。 でも、それ以前にこれらを作ってきたことが、とてつもない重労働です。 私には、高い品質で世に(無償)提供したいものがありますので、いくつかのものは作りましたが、かなり多くのそういった財産を作っていかないといけません。 今まで、492さんがやってこられた重労働です。 それをやることに比べたら、一つ一つのコードのメモリ開放型への変更は、基本的にはオブジェクト指向でないC言語で、これまでやってきた492さんにとっては、克服できるのではないでしょうか。 module型やFastCGI用にするとなると、確かにそれ専用で設計した方が良いものが結構ありますので、この際せっかくですので、一括でドン!ではなく、後世に残る財産と思ってチマチマやってみてはいかがでしょうか? これだけできる人ならきっとすぐにできると思います。 私も始めた当初は、スクリプト言語で同じものを作る100倍以上の時間がかかっていましたが、今では2倍程度の時間しかかかりません。 せっかくのC言語でCGIですので、より高い品質のものを期待しています。 ・・・というか、492さんは全盛期のYahoo!にでも勤めてた(る?)のでしょうか???
- 495 名前:nobodyさん mailto:sage [2009/03/23(月) 02:32:56 ID:???]
- >>494
私もこのAPIをもうちょい作り込んで、オープンソースででも公開したいんですが、 すでにいくつかの大手サイトで使っちゃってるので、 ソース公開してセキュリティホールが見つかったら怖いので、公開に踏み切れないw > ・・・というか、492さんは全盛期のYahoo!にでも勤めてた(る?)のでしょうか??? ずっとフリーで活動してますよ。 でも最近は仕事が激減して、暇を持てあまし中 orz
- 496 名前:nobodyさん mailto:sage [2009/03/23(月) 17:53:50 ID:???]
- CGIをC言語で書いているので、FastCGI + C の組み合わせにも興味あるけど、いまいち仕組みが
理解できなくて移行をためらっているので、もし良ければ質問に答えてもらえるとありがたいです。 CGIをFastCGIにすると、プロセスがメモリに常駐してFCGI_Acceptのループでリクエスト待ちになる みたいだけど、このとき複数のリクエストが同時に来たらどう対応されるの? 1. 一つのFastCGIのプロセスで順番に処理される 2. FastCGIのプロセスが新たに立ち上げられて、並行して処理される "1" ならアップローダーみたいな処理に時間のかかるものにはFastCGIは向かないって認識でいいのかな? (そもそも処理に時間がかかるなら起動コストの影響は少ないからノーマルCGIでいいのだろうけど) "2" ならせっかく常駐するのだから、データの内容をメモリにキャッシュして高速化しようとかすると、 複数立ち上げられたときにメモリを大量に消費しちゃうのでやらないほうがいいのかな? 試してみればいいのだろうけど、FastCGIに興味はあるけど今のところはC言語CGIだけでもCPU負荷で 困ることはなかったので、環境構築するところまでは踏み切れずにいました(^^;
- 497 名前:nobodyさん mailto:sage [2009/03/25(水) 15:31:05 ID:???]
- fastcgi は、基本的にはリクエストが来たら余っているプロセスがあればそれを使い、
なければ立ち上げるってだけ。 プロセスの生死自体は親が握っていて、同じインスタンスが同時に動くことがある ってのを覚えておけば、データをメモリにおいて使いまわすことは可能。 っていうかLinuxとかのOS標準のdevパッケージを使うなら、Hello, worldなcgi自体は 環境構築含めて15分もあれば出来るので、めんどくさがらず試せばよろしい。
- 498 名前:普及された人 [2009/03/26(木) 22:41:51 ID:4YbFu+ij]
- >>495
これだけの実力者が暇を持て余しているとは、世の中狂っています。 これだけの実力者なら凡人がRubyで3000ステップの素晴らしいプログラムを作る時間で、10000ステップの同等の機能の素晴らしいプログラムを作るでしょうに。 早く、プログラマのフリーエージェント的な制度が確率すると良いと思います。 力のある人が、それなりの報酬を得られることは必要です。 それがなければ、努力もせずダラダラとIT業界に執着する人が増えるばかりです。 オープンソース化できるのなら是非してもらいたいです! それこそC言語でCGIの普及になります。 > ソース公開してセキュリティホールが見つかったら怖いので、公開に踏み切れないw だからこそオープンソースで良いのではないでしょうか? 一人の力には限界がある。 だからこそ、みんなの目で見てもし穴があるのなら、みんなで埋めていけば良いのだと思います。 完璧なものを公開して、威張るためのものがオープンソースではないと思います。
- 499 名前:普及された人 [2009/03/26(木) 22:43:44 ID:4YbFu+ij]
- >>496
私が自分自身で言っていることと相反するようですが、495さんもおっしゃってたように、実動作では通常のCGIでも、キャッシュ化されますのでかなり高速です。 C言語の場合、処理自体が早いですから。 理論的に考えるとかなりの差ですが、実動作で考えると多くの場合FastCGIと通常のCGIの差は、「プロセスの生成」と「プロセスの廃棄」の時間になるかと思われます。 それと、昨日事情があって、Rubyの全コード見てみましたが、、、 素晴らしいプログラムで、感想は色々ありますが、とにかく長いですねぇ。。。 C言語のソースだけで、30ファイルくらいありますから、普通に流しで見るだけで4時間くらいかかってしまいました。 あのプログラムがインタプリタとして、スクリプトを読み込み処理することを考えると、遅いのが良く理解できます。 どれだけでかいWebアプリケーションをC言語で作ったとしても、あれほどでかくはなり難いので、間違いなくC言語で作ったWebアプリケーションは高速でメモリも食いません。 そう考えると、C言語のCGIだけで困っていないのなら、それでも良いかと思います。 ただ、多少の苦労で、無料で簡単に高速化できることは間違いないですし、多少のスキルアップにもなるかとも思いますので、是非一歩を踏み出して欲しいと思います。 RailsもRackをデフォルトとして一生懸命「単純化」や「高速化」を目指しています。 それよりも高いレベルのものが手の届くところにあるのですから、掴んじゃいましょう! 「手間がかかっても、面倒くさがらず、納得のいくアルゴリズムを完成させる」 「少しでも可能性があるのなら、より素晴らしいものを作るために努力を惜しまない」 それがC言語技術者だと思います。 色々相性など言われていますが、少なくとも私はApache & mod_fastcgiでとても安定動作しています。 やってみてダメなら戻せば良いのではないでしょうか? で、仕組みに関して私のわかるレベルで、解説ページを作ってみました。 急いで作ったので、おかしいかもしれません。 間違いがあれば、ご指摘ください。 ttp://www.dreamhope.net/soliloquies/webtec/
- 500 名前:nobodyさん mailto:sage [2009/03/27(金) 13:34:24 ID:???]
- >>497-499
ありがとうございます。おかげでFastCGIを使ったときのイメージが理解できました。 FastCGIは興味があったけど、試してみるのが面倒というよりは、試してみるとのめり込んでしまいそうで 目の前にあるやらないといけないことをおろそかにできない状況だったので試せなかったのです。 元々はアセンブラでプログラムを組むのが趣味だったような人間ですので、手間よりも高速化が好きですから 今後は少しずつFastCGIも利用していきたいと思います。
- 501 名前:nobodyさん mailto:sage [2009/03/31(火) 09:58:41 ID:???]
- >>500
高速化にこだわるなら、自分でアプリケーションサーバ書くのがいいのでは Apache臭はするけど、libaprなんかを使えばOSポータブルなdl()とかスレッドとか メモリプールとか基本データ構造とか入っててお得ですよ。 ま、それなりにデカいけどね。
- 502 名前:普及された人 [2009/03/31(火) 22:35:52 ID:Tx3EmaFc]
- この掲示板に出現する人は「C言語でCGI」をいかに、、、というのが目的ですし、
CGI部分を作るだけでも創造を絶する時間がかかりますので、アプリケーションサーバから作り始めるのは大変です。 今は情報が出回っていますので、作るに無理なことはないとは思いますが、一人で仕事外の時間利用だけで考えると、私ですと5年以上はかかりそうです。 Webアプリ一つ作るのにそれは効率的ではありません。 それにlibaprは、別にWebアプリケーションが高速になるものでもありません。 遅くなる可能性はあるけれど、作るときに便利で楽になるAPIだと思います。 C++技術者でない純粋なC言語技術者は、あまり使わないAPIだと思います。 使わざるを得ないAPI以外は、基本的に存在を知らなければすぐに自作してしまいますので。 「C言語が使える」ということは、別段便利なAPIを使う必要がないということでもあります。 libaprでメモリプールしなくとも、必要な分だけスレッドを立てて、mallocやcallocだけでしっかりメモリ管理できるということでもあります。(時に失敗しますが) おまけにlibaprのメモリプールは確保した領域をシステムに対して返却しないと記載されていましたので、逆にかなりコントロールしにくいAPIな気もします。 それだけの手間(時間)をかけ、なおかつメモリ周りも適当な設計で良いのなら、普通にC言語でApache module型Webアプリケーションでも組んだ方が楽で高速で良いのではないでしょうか?
- 503 名前:nobodyさん mailto:sage [2009/04/01(水) 11:08:56 ID:???]
- 作る際の効率が問題なら、そもそもwebアプリでCは選択しちゃダメ。
5年って、アナタたぶん作ったことないから死ぬほど安全に見積もってるよね? アプリケーションサーバって、そこまで作るの大変じゃないよ。やることは基本的に待つだけだし。 実際は余暇を二週間位でも最初のプロトタイプ位はできるんじゃ... まぁ、既存の適当にかかれたCGIをスレッド対応にするのは骨がおれると思うけど。 libaprのメモリプールの返却云々については、apr_pool_create の第二引数参照。 作業とか、ループとかにサブプールを作って、必要なメモリはそこから確保して、 終わったらサブプールだけ開放するって感じで。 でも、確かにCGIじゃないのでもうやめます。 fastcgiもCGIじゃないのではって気するけど...
- 504 名前:nobodyさん mailto:sage [2009/04/02(木) 22:00:32 ID:???]
- C言語が向いてるのは、開発費が多少増えたとしても、
サーバ台数が抑えられるから、トータルコストが安くて済むような案件だね。 検索サーバとか、2chとか、アクセス数が多いサイトとかね。
- 505 名前:普及された人 [2009/04/04(土) 11:18:37 ID:JlRZ3FIj]
- >>503
はい、もちろん作ったことはありません。 それに、今までのところでは作る必要性も感じたことはありません。 私がC言語で既存のAPIを利用せずにアプリケーションサーバを作ることを考えると、、、 FastCGIのようにアプリケーションサーバ(これはハードのことです)側にある複数のTCPクライアントCGIと通信をこなしながら処理を進めることや、 アプリケーション側に、どのようにどのくらいのメモリを与えるのかなどを考えると、 できるだけ汎用的なものにしようとすれば、TCP先で利用できるlibaprのようなAPIを自分で作らないといけないし、、、 というような感じで、503さんとは少し論点がずれていたようです。 すみません。 だた、やっぱり基本的な考え方としてはFastCGIは (Client → WebServer → FastCGI → CGI → FastCGI → WebServer → Client) という形態ですので、アプリケーションサーバもFastCGIとほぼ同じで、 (Client → WebServer → AppServer → App → AppServer → WebServer → Client) という形態になり、module型 (Client → WebServer(module型App) → Client) の方が構成がかなり単純ですので、C言語で作ったCGIやAppの反応はかなり高速だと思います。 それに、やっぱりmodule型のC言語Appを一つ作る方が、 アプリケーションサーバとクライアントアプリケーションの両方を作るよりも遥かに楽だと思います。 それ以上に、FastCGIであれば、 FastCGI用C言語CGIを一つ作れば済みますので、労力は激減します。 ただ、やっぱりアプリケーションサーバはもとよりmocule型AppもCGIではありませんね。 あと、FastCGIはCGIプログラムをメモリ上に常駐させるのかさせないのかという違いで、基本的な仕組みはCGIと同じと考えて良いと思います。
|

|