トップページphp
708コメント194KB

C/C++ CGIスレッド

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/02/26 08:58ID:GDAQuNNS
C言語CGI専用スレッド
http://pc2.2ch.net/test/read.cgi/php/988918264/

C/C++ CGI 専門のスレッドです。

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

http://cgi.resourceindex.com/Programs_and_Scripts/C_and_C++/
http://www.cgifiles.com/scripts/cc++/index.shtml

前スレ
http://pc2.2ch.net/test/read.cgi/php/988918264/
0472k ◆WFGp1NZuiw 2006/08/19(土) 16:36:07ID:???
>>471
せっかく C++ 使うのなら,Apache のモジュールにした方がいいよ.
0473nobodyさん2006/08/19(土) 17:13:35ID:???
怖いならソースを読むといいと思うよ
04744712006/08/19(土) 21:38:55ID:???
>>472
標準入出力をモジュールを介して行うということでしょうか?

>>473
そうですね。もう少しC++に慣れたら読んでみようと思います。
0475nobodyさん2006/08/25(金) 23:55:06ID:???
そもそもアパッチも自分で作ったほうがいいよ。
アパッチって変なことやり過ぎで変になってるし。mod_rewhiteのところとか。

商用UNIXのコンパイラでコンパイルが通る様に組めないおまいがどう見てもウンコ。
素人なのか?

C++なんてイラネ。ANSI Cこそ最強ですよ。
0476nobodyさん2006/08/26(土) 12:54:55ID:???
apacheを自分で作る??
httpdじゃなくて?
0477nobodyさん2006/08/26(土) 20:24:16ID:???
rewrite のスペルもまともに書けない人間はプログラミング以前に、
中学校レベルの英語から人生やり直した方がいいと思うゾ。
0478nobodyさん2006/09/08(金) 22:30:29ID:zv3xWmqW
みんな HTML 出力クラスどう設計してる?
0479nobodyさん2006/09/08(金) 23:24:55ID:???
どうって言われてもな。
オブジェクトに要素渡して最後にoutputさせるだけだが。
0480nobodyさん2006/09/09(土) 01:07:22ID:????2BP(200)
リホワイトワロタww
0481nobodyさん2006/09/09(土) 04:11:02ID:???
>>478
俺はPerlのHTML::TemplateやPHPのSmartyみたいなヤツで出力してる。
C/C++でソース中でレイアウトいじるのはどうなのよ?
いちいちコンパイルしなきゃならんのはめんどくさくね?

0482nobodyさん2006/09/13(水) 04:35:05ID:???
でもソース中に埋め込んでないと遅いのでCにした意味がなくなるけどな。
コンパイル面倒ならphpとかperlあたりで作った方が楽だし。
0483nobodyさん2006/09/15(金) 01:24:49ID:???
テンプレートなんざオンザメモリですよ
0484nobodyさん2006/09/15(金) 10:27:09ID:???
リクエストの度に読み込んでたら遅いしなあ。
0485nobodyさん2006/09/15(金) 11:00:49ID:???
やっぱC/C++な人たちは速度に厳しいのかな。
俺はテンプレートくらいって考えちゃうよ。
でもそこまで考えるとやっぱりCGIって枠を抜けたくなってくる。
あーだからみんなCでCGI書かないのか。
0486nobodyさん2006/09/15(金) 16:17:35ID:???
80番つかんで自前でリクエスト処理が早いよね。
フロントエンドにアパッチ置いて、ヲレモジュールで繋いだ方が便利だけど。
javaのj2eeのC的アプローチだが。
0487nobodyさん2006/10/03(火) 22:36:48ID:???
printfでlocationを実行させようとしたんですが、単にlocation文が出力されるだけなんですが・・・
制御文と認識させるためには、お呪い前処理が必要なんでしょうか?
0488nobodyさん2006/10/03(火) 23:06:19ID:???
- locationを実行って何
- 「単に出力されるだけ」ってどこに何が出るの
- 制御文って何
- お呪い前処理って何

総じて意味不明
何をやったのかも何をやりたいのかも伝わってこない
0489nobodyさん2006/10/04(水) 00:00:11ID:???
CGIスレだし、Locationでリダイレクトさせたかったんじゃね?
でも別の場所でprintfしてる Content-type: text/html が残ってるせいで文字が表示されてるだけとか
0490nobodyさん2006/10/04(水) 00:17:56ID:???
まあつまりStatus:302ってこったろうな。
302時にhtmlを返すこと自体は普通だし。確か。
0491nobodyさん2006/10/13(金) 20:22:15ID:???
ttp://labs.preferred.jp/azarac/
0492k ◆WFGp1NZuiw 2006/10/22(日) 15:08:53ID:EW4822UW
>>491
http://barracudaserver.com/WP/CSP/ の再発明な予感.
(http://0xcc.net/blog/archives/000068.html)

べつに再発明が悪いとは思わないけど,どこが違うのか明示してくれるとうれしいかも.
0493nobodyさん2006/10/28(土) 00:02:45ID:???
むしろ調べて報告してくれ。
来週までの宿題ってことにする。

再発明でも、いいよ。
まともに業務に使えそうな機能が欲しい。
0494nobodyさん2006/11/09(木) 17:10:13ID:???
CGIの質問はここですればいいのですか??
0495nobodyさん2006/11/09(木) 22:46:46ID:???
CかC++で作られたものなら。
それ以外のphpとかperlとかjavaとかなら他へ。
0496nobodyさん2006/11/09(木) 23:34:21ID:???
http://www.gigigi.net/up/upload.phpのアプロダは
CかC++でつくられてますかね??
0497nobodyさん2006/11/10(金) 00:30:34ID:???
そのurlの最後の三文字を声に出して読んでください
0498nobodyさん2006/11/11(土) 14:49:10ID:???
拡張子でファイルの種類を判別できるなんて、あなたは超能力者ですか?
0499nobodyさん2006/11/22(水) 16:23:47ID:???
権利関係のとこ見れば良いじゃないんか?
あれはただ表示してるだけですか
0500nobodyさん2006/11/27(月) 19:10:34ID:???
そういや拡張子の無いCGIは
.htaccessで
<Files test-cgi>
ForceType cgi-script
</Files>
ってやっているけど、これ以外の方法で設定ある?
0501nobodyさん2006/12/04(月) 17:45:41ID:???
mod_rewrite
0502nobodyさん2006/12/09(土) 12:15:32ID:NH9SQeUM
>>491
既にあるものを新しく作ったかのように発表するのは、
プログラマとしてダサイ、
研究者として最低、
会社としては?

それとは別にpreferredのコードがazaracと同等だとしたらダメすぎだろ。
コアは良いのにもったいない
0503nobodyさん2006/12/09(土) 13:05:08ID:???
既にあるものがベストでない場合も有る訳だし。

新しく作った方が良ければ評価はされると思う。
プログラマでも研究者でも先駆者だけが評価されるのは視野が狭い証。

コアは再利用するけど、もっと使いやすくするのがオープンソースの醍醐味。
0504nobodyさん2006/12/10(日) 00:02:51ID:???
>>503
>新しく作った方が良ければ評価はされると思う。
そりゃそうだけどそれを示してないよね。そんな論文どこにだしてもrejectされるよ。
ちょっと>>492にあるやつ見た感じだと示せそうもなさそうだけど。

あえて言えば日本語ドキュメントがあることだけど、それじゃぁね。
まぁ今後に期待。
0505nobodyさん2006/12/11(月) 23:50:20ID:???
どこのスレで聞いていいのかわかんないので、ここで聞きます。

カウンターCGIを探しています。(※フリーで配布されているもの)
絶対条件は、GIFアニ画像を使えるカウンターが希望です。

kentのは連結ライブラリを使用するやつしかありませんでした。
他にもいろいろ探しましたが、これといったものが見つかりませんでした。

キリバン機能はあっても無くてもヨシの方向で。
また、ここじゃなくてこっちのスレで聞けやー
っていうのがありましたらそのスレ教えてください。
0506nobodyさん2006/12/14(木) 00:13:39ID:???
誰かエンドレスバトルのスクリプトうpしてくれる神はいませんか?
0507nobodyさん2006/12/16(土) 19:00:54ID:nIpz82eR
あげ
0508nobodyさん2006/12/17(日) 19:00:36ID:???
>>505
失礼な方ですね。
0509nobodyさん2007/01/16(火) 18:49:14ID:xXzalZaX
VCで作ったCGIで、C:\WINDOWS直下に置いてあるINIファイルの設定を取得しようとすると取ってこれないのという現象が発生します
他のディレクトリを指定すると正常に動作するのですが、アクセス権限の設定とか必要なのでしょうか?
0510nobodyさん2007/01/16(火) 21:04:10ID:???
>アクセス権限の設定とか

わかってて何故確かめない
05115092007/01/17(水) 07:25:17ID:???
IIS、システムフォルダとも確認しました
他に確認する所ありましたっけ?
別のサーバーはちゃんと動いてるんだけどなー
0512nobodyさん2007/01/17(水) 10:04:45ID:???
>>509
エラーコードやらメッセージやら確認した?
0513nobodyさん2007/02/07(水) 17:14:45ID:???
Cから、INIファイル自体読めるかどうかの確認ぐらいしたら?

オラクルとのやり取りはProCってのがあるみたいだけど、HTML生成と、HTTP周りとGET/POSTやセッション管理のライブラリ欲しい。orz
0514nobodyさん2007/02/13(火) 21:17:14ID:+34QrCfo
C言語用のCGIライブラリで有名なものは何ですか?
クエリやHTTPヘッダを解析する程度の、簡単なもので構わないのですが…
0515nobodyさん2007/02/24(土) 19:11:47ID:eSgsNpz0
質問させてください。

C言語の勉強をしたいので、C言語でCGIを作ろうと思ったのですが
CGIのほとんどはPerlで組まれてるようで、そのことを考えたら
C言語でCGIを作るのとPerlで作るのではどのくらい作業量が違うのかが気になりました。

CでCGIを作るのとPerlで作るのでは、どのくらい作業量が違うのでしょうか?
また、Perlでないと作るのが難しい処理がある、といったことはあるのでしょうか?
05165152007/02/24(土) 21:05:09ID:eSgsNpz0
一応付け加えさせて頂くと
C言語は基礎的なことは一通り理解しています。

といっても、まだまだ腕に自身がなく
今後仕事で使うことになるので、あえてPerlではなく
C言語で作りたいと思いました。
05175152007/02/24(土) 21:08:08ID:eSgsNpz0
一応付け加えさせて頂くと
C言語は基礎的なことは一通り理解しています。

といっても、まだまだ腕に自身がなく
今後仕事で使うことになるので、あえてPerlではなく
C言語で作りたいと思いました。
05185152007/02/24(土) 21:14:11ID:???
連続投稿して申し訳ござません。
0519nobodyさん2007/02/25(日) 13:19:25ID:???
>>515
PerlはもともとCGI用に作られた言語じゃなくて、文字列処理に強いから適してたってだけ。
正規表現系のライブラリさえ用意できればCでもさほど手間は変わらない。

っていうか本当にCを理解してればこんな質問自体無意味だと気づきそうなもんだが。
05205152007/02/26(月) 22:08:57ID:???
>>519
ありがとうございます。
文字列処理に強いからCGIで使いやすいということだったのですね。
Cでがんばってみようと思います。
0521nobodyさん2007/03/28(水) 17:29:46ID:???
たまには保守
0522nobodyさん2007/03/29(木) 02:57:24ID:???
初心者ながらも悪戦苦闘しWEB作成してます。
掲示板を動かすのはCGIによるものだというのがわかるのですがどうも掲示板の設置方法がわかりません。
掲示板はCGIパール言語ではじめから組み込まれたものなのですか?それともHTMLである程度(HPのヘッダー部分や上のロゴとか)
作ってから掲示板としてはじめたい行からCGIでプログラムを書き始めるものなのでしょうか?
それとも掲示板のページは最初からCGIでヘッダーやロゴの部分もCGIパール言語で書き始める、とういうものなのですか?
このばあい、ロゴとかを前のHPから来るレイアウトでCGIにできる方法など簡単に図示、説明してあるWEBなどないでしょうか?
ど素人の質問ですがどなたかご回答いただけましたら幸いにございます。
0523nobodyさん2007/03/29(木) 23:03:39ID:???
>>522
そのレベルだと何説明されても理解できないだろうから
自分で設置しようとか思わずにまずレンタルの掲示板
借りたほうがいいと思うよ

あとスレ違い
0524nobodyさん2007/03/30(金) 08:27:18ID:2TKxnanC
>>522
ロゴっていうのがよくわからないが
>それともHTMLである程度(HPのヘッダー部分や上のロゴとか)
>作ってから掲示板としてはじめたい行からCGIでプログラムを書き始めるものなのでしょうか?
この辺はPHPなら出来る

>それとも掲示板のページは最初からCGIでヘッダーやロゴの部分もCGIパール言語で書き始める、とういうものなのですか?
Perlはそう

で、ここは C/C++ のスレです
0525nobodyさん2007/04/21(土) 13:51:12ID:DYrM8nyl
>>496
画面下に
ずるぽんあぷろだ + レッツ PHP!
となっているから
phpじゃない?
05264962007/04/23(月) 20:14:06ID:???
>>525
サンクス!
05274962007/04/26(木) 18:01:43ID:???
ところで、デバッグって
みなさんどうやってます?
0528nobodyさん2007/04/27(金) 00:43:37ID:???
別に。ふつーにやってる。
05294962007/04/27(金) 18:44:00ID:???
そうですか。
どうも。
05304962007/04/28(土) 11:27:25ID:???
おはようございます。
ここって人いないですね。
05314962007/04/28(土) 20:44:43ID:???
Cで作ったCGIが正常に終了しないで
プロセスとして残ってしまったら
どうやって終了させればいいんですか?
0532nobodyさん2007/04/28(土) 23:20:22ID:???
>>496
うぜーから
消えろ!
0533nobodyさん2007/04/29(日) 03:13:16ID:???
>>531
reboot
0534nobodyさん2007/05/02(水) 01:28:56ID:???
cgiだとhttpdから呼ばれてるから再起動しか無いね。
0535nobodyさん2007/05/07(月) 00:58:27ID:WXo0gSV8
独学でC++を使ってcgiを学んでます。

How to Program in C++って本で
「ユーザーが一度注文したアイテムを
ショッピング・カートから消せるようにviewcart.cgiを変更しなさい」
って問題があるんですけど、流れ的にはどうやればいいんですか?

viewcart.cgiは元々ユーザーが注文したアイテムを表示するだけのcgiです。
各アイテムにボタンは追加しました。
ただ、shopping.cgiからコピーしてきただけなので
押すとアイテムの数が一つずつ増えていきます。_| ̄|○

クッキーをostreamで開いて直接消してやらないとダメですか?
でも、途中にあるデータを消すのって大変ですよね…
後ろのを全部コピーしておいてまたペーストとか…。
一般的にはこういうのはどうするんですか?
ヒントをください。そしたら、自分でやってみます。
05365352007/05/07(月) 01:05:44ID:WXo0gSV8
↓ソース(viewcart.cpp)です:

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=3844

55. viewcart.cpp  C/C++ CGIスレッド - 2007/05/07(Mon) 01:04 No.3942
3942.txt お借りします
0537nobodyさん2007/05/07(月) 04:41:51ID:???
いや、ていうかカートの中身をcookieに持つこと自体がまずありえない
まずセッションの使い方を学ぶべし
05385352007/05/07(月) 05:38:49ID:WXo0gSV8
>>537
いや、別に実用するわけじゃないんで
「やっつけ」でカートの中身をcookieに持ってていいんですけど。
(client.txtなんてパスワード暗号化なしですしw)

cookieのいじり方も知っててのレスですよね?
cookieのデータの削除の方法を教えてください。
この本には追加する方法しか書いてないんですよ…。

さっきから検索してるけど全然そういうサイトが見つかりません…。
05395352007/05/07(月) 05:40:36ID:WXo0gSV8
ちなみにセッション管理はPHPで少し勉強しました。

この本の他の問題は全部解いたんですよ。
あとはこれだけなんでどうしても終わらせたいんです。
0540nobodyさん2007/05/07(月) 08:48:04ID:???
削除つーか上書きすればいいだけの話なんだが。
あと前提があるならちゃんと最初に書こうな。お互い二度手間だ。
0541nobodyさん2007/05/07(月) 08:55:11ID:???
「cookie 削除」でググれば速攻で方法見つかるやん
05425352007/05/09(水) 22:54:06ID:AhyOmpI4
>>540
一つの問題にしては時間がかかりすぎたんでもう諦めました。
本に載ってないことをやらそうとするのが悪い。w
ご協力ありがとうございました。
0543nobodyさん2007/05/09(水) 22:56:01ID:???
ゆとり教育の効果は素晴らしいですね(棒読み)
05445352007/05/09(水) 22:58:36ID:AhyOmpI4
>>543
速攻ですな。w
いやね、キーを検索して空白やらマーカーやらで上書きまではやっても
削除にまでは至らなかったんですわ。

ちなみに自分は30歳超えてます。wwwwwwwwww
0545nobodyさん2007/05/09(水) 23:30:29ID:???
君がやってるのはプログラミングじゃなくてただのテキストコピー作業だ
05465352007/05/09(水) 23:40:33ID:AhyOmpI4
>>545
その通り!異論なし!w

ま、人間何事もコピーから始まるんですよ。
自分は終わりもコピーですが。
0547http://softbank219023243191.bbtec.net.2ch.net/2007/05/10(木) 06:57:35ID:???
guest guest
0548nobodyさん2007/05/10(木) 23:09:33ID:AA4DnND/
君たち、ちょっと背伸びしてないか?
0549nobodyさん2007/05/11(金) 18:17:50ID:???
削除ってリンクに削除したクッキのリンクを貼ればおk。

0550nobodyさん2007/06/07(木) 22:32:05ID:GrrIKIFJ
EUCからUTF-8などに変換できる関数が掲載されているサイト教えて
0551nobodyさん2007/06/08(金) 00:26:44ID:WTsEXDzF
iconv
0552nobodyさん2007/06/08(金) 03:18:28ID:???
babel
0553nobodyさん2007/06/08(金) 20:05:57ID:???
>>551
サンクス。
0554nobodyさん2007/06/18(月) 07:16:24ID:???
初めてのCGIをCで作るってのは無茶だよねー。
PerlかPHPかで練習してからじゃないと、
ちょっとした掲示板作るのにすら1ヶ月以上はかかるんじゃないかな。

でもアクセスが集中する大規模サイトは、
Cで書かないとサーバ負荷が高くなりすぎて持たない。
なので、yahooとかもCで書いてる。

そしてCで書く人は、本格的に仕事で書いてる人が多いから>>451になり、
このスレも伸びない。
0555nobodyさん2007/06/19(火) 21:49:28ID:???
>>554
Cで書いたって、CGIとして使うなら、一般的にmod_perl使うよりも遅くなる。
速さを追求するためにCを使うんだったら、apacheのmodule書いて、自分で
リクエストを捌くに限る。

C/CGIって、余程特殊な場合(Cしか出来ないとか、ソースを渡したくないとか)
を除いて、メリット無いのよね。
0556nobodyさん2007/06/20(水) 00:49:44ID:???
>>555
2chのような掲示板の場合は確かにそうだけど、
いろいろ複雑な処理をする大規模サイトになってくると、結局C最強。

前に管理系CGIでボタンを押すと、最新のデータをもとに
サイト内のHTMLを更新するシステムを作ったんだが、
HTMLの数が数百レベルになって、
PHPやPerlだと数分待っても処理が終わらないということに。
Cで作り直してチューニングしたら、わずか数秒。

最近はWebアプリにいろんなことをさせようとしてるから、
ますますWebアプリの処理速度が重要になってくると思うな。
0557nobodyさん2007/06/20(水) 01:01:50ID:???
単にバグってたんじゃないのかw
Perlで毎日400ファイル更新してるけど2秒ぐらいだぞ @Pentium4
0558nobodyさん2007/06/20(水) 01:07:54ID:???
>>557
複雑なサイトだから、あちこちで多重ループをかける必要があったり、
レコード数がかなり多かったり。

できるだけ多重ループにならないように工夫もしたんだが、複雑すぎて無理…。
0559nobodyさん2007/06/20(水) 02:22:17ID:???
組み方が下手なだけでした。本当にありがとうございました。
0560nobodyさん2007/06/20(水) 04:30:38ID:???
>>559
本当に複雑なシステムっていうのを作ったことがないでしょ?
官庁とかから一度受けてみると良いよ。
意味不明な仕様にこだわって、システムが無駄に複雑になる。
0561nobodyさん2007/06/20(水) 06:23:39ID:???
えーと、perlは確かに速くはないけど
普通に処理した場合、Cと比較して数倍程度の差しか出ないでしょ。
もちろん、これはそれなりに時間のかかる処理をした場合。
(インタプリタの起動時間と内部コンパイルの時間があるから)

で、下手な奴が作ると、無駄な処理をループ内でやってたり
(不要な初期化とか正規表現のコンパイルとか)して時間がかかる。
Cならコンパイラが最適化してくれたりする部分でも。
0562nobodyさん2007/06/20(水) 06:27:37ID:???
あと、普通は(DBとの交信等も含め)I/Oがそれなりの比重を占めるから、もっと差はつまる。

だけど喜んで連想配列をループ内で初期化しまくったり
インデックスで参照できるのに何故かリニアに探索してたり。
0563nobodyさん2007/06/20(水) 07:09:28ID:???
>>561-562
確かにCでは最適化したけど、Perlはそこまで最適化したわけじゃないから、
かなりCに有利な比較ではある。

しかしCで作ってると、ウェブサーバにはほとんど負荷がいかないが、
その代わりDBがボトルネックになる。
Javaのレスポンス/オブジェクトキャッシュのように、
CでもDBの負荷を減らせるうまい方法はないものか・・・。
0564nobodyさん2007/06/20(水) 07:27:51ID:???
まあその手のキャッシュを使いたい時は、まずCGIってのがネックになるね。
独立したプロセスだから、交信や共有は面倒。

じゃあapache moduleにすれば良いかと言うと、そうでもない。
これも、基本的にシングルプロセスのMPMは無いから
全体で共有することも出来ないし、
プロセス毎にキャッシュするとしても全体でのメモリ使用量等、効率が悪い。

時間が充分にあって自由自在に出来るのであれば
自前で簡単なシングルプロセス/マルチスレッドなサーバーを書いて
apacheでは、必要な時にそのサーバーと交信するmoduleを書いて使う、
というのが速度的にはベストだろう。

まあこのやり方は
実際にはapacheにtomcatを組み合わせるのと本質的な差はないけどね。
0565nobodyさん2007/06/20(水) 10:18:48ID:???
ところで皆さんコンパイラは何使ってますか?
0566nobodyさん2007/06/20(水) 13:55:22ID:???
>>565
普通にgcc
0567nobodyさん2007/06/20(水) 22:08:35ID:???
>>560
「これは○○県警さんでやった方法なんですが」
「では、それとはちょっと変えてください」


いや、別に変えなくても良いものは
無理して変えんでも良いがな...orz
0568nobodyさん2007/07/02(月) 07:03:13ID:???
ソースを渡したくないって、飯を食うのには重要だけどな。
毎回ソース渡してたら、いつかは喰えなくなる。

mod_perlが速いってことは無いな。perl自体重いし、perlもCで書かれてるから、perlの構文解析の分遅い。

結局は、常時起動デーモンのトムキャット方式に落ち着くよね。
誰もが通る道なのかと安心した(w

同じ方法だと同じ攻撃に弱いってのはあるから多様性って重要。

古い所のシステムだと、歴史的経緯で非効率な処理を求められることはよくある。
開発費高めでも払ってくれるので好きだけど。他と同じ単価なら受けないけどな。
0569nobodyさん2007/07/04(水) 00:35:14ID:???
CからSQL鯖弄るのって、ODBCぐらいしかない?
Cには、JDBCみたいなのは無いよね?
0570nobodyさん2007/07/04(水) 02:01:41ID:???
>>569
ODBCとか使わなくても、Cならネイティブドライバ使えばいいのでは…。
他のDBへの移植性を上げたいのならODBCを使うしかないかな。
0571nobodyさん2007/07/27(金) 15:06:25ID:HlWLP/Z4
CGI から,GetModuleFileName を呼び出すと、ドライブ名の前に"\\?\"という文字が付きますが、
これって、なんなのでしょうか?、教えてください。

Windows 2003 Server、 IIS、Visual Studio 6.0 です。

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