トップページ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/
0398nobodyさん2005/09/22(木) 01:33:37ID:???
わけあって初めてC++でCGI組んでみた(普段はPHPとか)
複雑な構造のデータを処理する場合とか、やっぱり速いね。
0399nobodyさん2005/09/22(木) 07:44:47ID:???
>>397
bbs.cgiはPerlだよ。mod_perlとかfastcgiとか検討されたけど今はSpeedyCGI使ってる。
read.cgiは2ちゃん閉鎖の危機のときにCのソースが公開されてgzip圧縮が追加された。
0400nobodyさん2005/09/22(木) 13:25:27ID:???
Web に向いていないというのはあるけど,Web を趣味でやっている人間の技術
レベルが低いというのも原因の一つでは?

# 前に read.cgi のソース見て、そのあまりの汚さに絶句したことあり
0401nobodyさん2005/09/22(木) 16:48:47ID:???
はいはいすごすすごす
0402nobodyさん2005/09/22(木) 16:50:45ID:WZseHGJ/
ついでにage
0403nobodyさん2005/09/22(木) 17:33:25ID:???
1つのバイナリで使えるOSが限られるしね。
どうしてもインタプリタ型になってしまう罠。
0404nobodyさん2005/09/23(金) 00:29:42ID:???
>>400
2002年ぐらいに一度見たのは、確かにアレだったけど、
その後にちらっと見たのは、新しく書き下ろされたように結構綺麗だった。
今はどうなってるんだろう。
0405nobodyさん2005/09/23(金) 14:20:20ID:???
まだソースは転がってるのか!?
0406nobodyさん2005/09/23(金) 15:38:07ID:???
今のはもう無理だと思うけど、
古いのは、ネットのどっかに転がってるかも。
0407nobodyさん2005/09/23(金) 16:23:56ID:???
ここになんか沢山出てる
ttp://66.102.7.104/search?q=cache:fpFsrkBwL9YJ:sunos.saita.ma/2ch-cgi-lw.html+read.cgi+&hl=ja
0408nobodyさん2005/09/23(金) 17:29:18ID:???
http://sunos.saita.ma/2ch-cgi-lw.html
0409nobodyさん2005/09/27(火) 19:53:24ID:???
読みにくい…
0410javaさん2005/10/06(木) 01:36:36ID:9/nHwpYz
CGIではなくてJavaでいうServletコンテナのようなものとVelocityのようなテンプレートエンジンを探しています
ご存知ないですか?
0411nobodyさん2005/11/20(日) 17:08:19ID:Va/OuDM7
下がりすぎ
0412nobodyさん2005/11/21(月) 02:40:39ID:/C8jg8zb
C言語のプログラム作成はどこですか?
0413nobodyさん2005/11/21(月) 02:50:55ID:???
>>412
日本語がわからんが単にC言語のこと聞きたいならプログラム板
0414nobodyさん2005/11/21(月) 21:22:28ID:???
C言語でCGIを動かす利点は何ですか?
0415nobodyさん2005/11/21(月) 21:45:27ID:???
>>414
利点:既にコンパイルされてるから実行が早い。
欠点:一から作るのは死ぬほど面倒。
0416nobodyさん2005/11/26(土) 02:09:45ID:???
c++ならそんな面倒でもない
0417nobodyさん2005/11/26(土) 12:19:56ID:lGwtghir
今日からC始めるぞage
0418nobodyさん2005/11/28(月) 21:19:30ID:???
挫折した
0419nobodyさん2005/11/29(火) 07:09:03ID:???
はやっ
0420nobodyさん2005/12/13(火) 02:50:45ID:0HjM7Fv9
windowsでのcgiの扱いの事なのですが、C言語で.作った.exeの拡張子を.cgiに変えると途端に上手く動作しなくなります。
win上ではcgiの拡張子は.exe一択になってしまうのでしょうか?

自分だけアドレスがhttp://〜/cgibin/testing.exeになるのが恥ずかしいんですけど。。
0421nobodyさん2005/12/13(火) 03:28:57ID:???
>>420
httpdに何使ってるのか知らんがハンドラ変えればいいだけの話じゃないのか
0422nobodyさん2005/12/13(火) 21:01:21ID:???
普通 .cgi でもうまく動作するはずだけど……
というかネゴシエートすれ。 .exe も .cgi も恥ずかしいことに代わりはないから。
0423nobodyさん2005/12/13(火) 22:33:44ID:???
.pdfとかにすれば良い。
04244202005/12/14(水) 19:01:11ID:???
>>421
>>422
>>423
URLの変換にも色々あるようで、参考になりました
レス有難うございました
0425nobodyさん2005/12/14(水) 21:45:05ID:???
カウンタ作るのも一苦労ですたいorz
0426nobodyさん2005/12/24(土) 00:54:12ID:???
ファイルのアップロード処理で下記の内容を参考にしているのですが
どなたかご存知でしたら、お教え下さい。

ttp://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/multdisp.html

ブラウザがバイナリファイルを送信した場合に、マルチパートデータに
含まれるContent-Type:はブラウザのMIME判定に
依存されると思いますが、その後の改行した後に送信するデータって
バイナリファイルのデータがそのままで送信されてくるんでしょうか?
上記の解説だと、「ファイル内容がほぼそのまま置かれ」って
記述されているのですが・・・何らかの手順(BASE64とか)で
エンコードされていたりするのでしょうか。

0427nobodyさん2005/12/27(火) 16:08:10ID:???
>>426
画像なんかはバイナリのまま送られてくるね。
一応rfc2388,rfc2046を参照しておくといいかも。
0428nobodyさん2006/01/13(金) 16:47:51ID:sdM07NCL
あけましておめでとうございます。
0429nobodyさん2006/01/13(金) 22:23:10ID:itKm2IBl
ここにもオススメCGIが載ってますよ!

ttp://my-hero.versus.jp/cgi-navi/
0430nobodyさん2006/03/19(日) 09:20:21ID:???
この板には人がいないようですが...
C++でサーブレットコンテナ作ってみました。
まだまだ、おもちゃのみたいなものですが...
http://www.j2cc.org/shibaken/
04314302006/03/19(日) 23:54:56ID:???
私用でageすいません。
どこに晒せば良いかもわからずです。(ならば晒すなと言わないで)
板違いorスレ違いであれば良い場所教えて下さい。
0432nobodyさん2006/03/19(日) 23:59:32ID:???
ム板の方が盛り上がるかも。
ム板は特定スレしか見てないから、分からないけど…。
04334302006/03/20(月) 01:18:15ID:???
ムですか...了解です。
明日にでもム板にマルチポストで叩かれに言ってみます。
0434nobodyさん2006/04/13(木) 19:42:23ID:???
保守
0435http:// 202-71-90-222.ap-w01.canvas.ne.jp.2ch.net/2006/04/13(木) 23:31:32ID:???
guest guest
0436nobodyさん2006/04/18(火) 17:41:56ID:6Kyc62WF
板違いと言われたのでこちらでも質問させてください。

クライアントプログラムとCGIとの間で通信をやりたいと思っています。
クライアントはソケット通信で最初にポート80(Apache)にconnectするようになっています。

この状態でクライアント側で試しにCGIをシェル上で走らせてみると
CGIに書いてあるHTMLは表示されるのですがscanfがまったく無視された形で戻ってきます。

自分としてはCGI上に書いてあるscanfで処理が1回止まり、1度文字の入力ができれば
いいなぁと考えていたのですが、この考え方は間違っているでしょうか。

正しいか間違っているか、また間違っているならば後学の為にも正しい処理の概要を
教えて頂ければ幸いです。
言語はC言語、サーバーはRedHatです。よろしくお願いします。
0437nobodyさん2006/04/19(水) 00:35:56ID:???
>>436
間違ってる。CGIへの入力はGETまたはPOSTしか無い。
つかCGIをかなり大幅に勘違いしてるようだからちゃんと勉強してからおいで。
0438nobodyさん2006/04/19(水) 00:44:20ID:???
CGIに関しては>>437の通りなんだけど、

>クライアント側で試しにCGIをシェル上で走らせてみると

http経由じゃなくてシェル実行でもscanfが効かないなら
何か根本的なところが間違ってるんじゃないか?
0439nobodyさん2006/04/30(日) 02:49:16ID:???
【質問】
 http://ysserve.int-univ.com/susi/Lecture/c2/
↑のページの【必須CAI課題】のどれかをクリックして適当に学生の番号入力するとオンラインのコンパイラに飛べますが、
このようなC言語のオンラインコンパイラを自分のHPに設置したいのですがどうしたらいいのでしょうか?

ちなみに自分のHPサービス(sakura.ne.jp)にはCGI,PHP,C言語(gcc)等のコンパイラがあり、パスも分かるのですが
そこからどうしたよいのでようか?
ソースが入力された文章を受け取って、次にgccのパスを・・・どうやったらコンパイルできるのでしょうか?教えてください
gccのパス:http://takaharamayou.sakura.ne.jp/proglang/gcc
ちなみにCやVBといった言語やHPビルダーは使えますが、Webプログラミングの勉強はしたことないので、HPビルダーで出来る程度でお願いします。


(さらにこのオンラインコンパイラだとscanf関数等数値のキーボ−ド入力が出来ないので、余裕があれば改善したいです。HTMLだけじゃ無理そうですが・・)
0440nobodyさん2006/04/30(日) 03:33:14ID:???
>>439
何か恐ろしいレベルで勘違いしてそうだからあらかじめ言っておくが、
オンラインコンパイラなんて代物は存在しない。

とりあえずCGIというものについてちゃんと勉強してから来なさい。
ちなみにホームページビルダーでは何も出来ない。以上。
0441nobodyさん2006/04/30(日) 03:36:11ID:???
>>439
つか本当にC言語使えるのか?
gccの使い方知らん上にインタプリタとコンパイラの区別もついてないように見えるが
0442nobodyさん2006/05/01(月) 00:57:00ID:???
C,C++プログラミングスレッドで、反応なかったんで、こっちで聞いてみます。
linux(RedHat4)上のCのcgiのプログラムなんですが、コンパイルしてコマンドラインから実行すると動くんですが、
ブラウザ経由で実行すると、共有ライブラリが無いよ、のエラーになります。
LD_LIBLARY_PATHとか、httpd.confのSetEnvとか、ldconfigとか試しましたが、
現象変わらずです。
ldd というコマンドが有るとわかったので、コンパイルした実行形式をlddしてみると、
問題ないのですが、cgi-binにコピーしてlddすると、無いよと言われる共有ライブラリが、not found
になります。
これ、ナニが問題なのでしょうか?
0443nobodyさん2006/05/01(月) 01:12:42ID:???
>>442
コンパイルしたディレクトリにライブラリがあるんじゃないの?
04444422006/05/01(月) 08:59:47ID:???
>>443

ライブラリというのは、OracleのOCIなんですが、そこは確認しています。
ライブラリ自体と、ライブラリのあるところのパーミッションも変えてみましたが、
現象変わらずでした。
ちなみに、>>442 では、LD_LIBRARY_PATHのスペル間違ってますが、
これは書き込みミスです。
0445nobodyさん2006/05/01(月) 12:51:31ID:???
>>442
共有ライブラリの参照先が相対パスになっているとか?
lddの結果を見せてもらえるとわかるかも。
04464422006/05/01(月) 13:59:54ID:???
>>445
絶対パスで表示されています。

で、色々いじくり回した結果、SELinux を無効にしたら動きました。
SELinuxの設定でしょうか?

このあたりはスレ違いっぽいので、ほかで聞いてみます。

>>443さん、>>445さん ありがとうございました。
0447nobodyさん2006/06/04(日) 14:30:46ID:???
なんか簡単に使えるフレームワークとかライブラリが有ればいいのに。

ejbとmod_jkみたいなのを希望。
0448nobodyさん2006/06/04(日) 14:38:35ID:???
そう思ったら、自分で作って公開することをお勧めする。
0449nobodyさん2006/06/08(木) 20:51:42ID:???
みんな思いつきそうだけど手は動いてないね。
0450nobodyさん2006/08/07(月) 15:01:57ID:f+NIkUuU
C/C++界隈には凄い人いっぱいいそうなのになんでだろ?
啓蒙活動には興味ないのかな。
まあ、いまどきC/C++でCGIやるような人が
ポピュラーでキャッチーなコードを書いてるわけないか。
自分最適化バリバリっぽいな。
0451nobodyさん2006/08/07(月) 15:27:49ID:???
まあ作れるスキルあったら売り物にするからね。
時間もかけてるしビジネスノウハウもつぎ込んでるから無料で公開というのは無い。
0452nobodyさん2006/08/07(月) 21:24:16ID:???
サーバーサイドはJavaのserverVMの方が速くて安全でライブラリが揃ってるから、
C,C++で作る意味がない。
0453nobodyさん2006/08/09(水) 10:03:29ID:???
CよりJavaの方が速いってありうる?
0454nobodyさん2006/08/09(水) 19:52:36ID:???
javaのvmのほうが速いってことは無いよ。
常にCで生成した実行バイナリのほうが桁違いに速い。
0455nobodyさん2006/08/09(水) 22:43:45ID:???
>>454
だよね。>>452はJava厨か。
0456nobodyさん2006/08/09(水) 22:57:54ID:???
速いcで作りたいけど一から作るのマンドクセ。
結局はフレームワークが揃ってるjavaに流れるって罠?
0457nobodyさん2006/08/11(金) 23:13:47ID:???
javaは速さがどうとか言うよりもクロスプラットフォームという点が大きいと思う。
まぁ、今更Cを学ぼうという人間もなかなかいないしね。

そのせいか稀に素っ頓狂なjavaソースを目にすることがあるが、これも愛嬌。
0458nobodyさん2006/08/12(土) 17:50:30ID:???
javaじゃ遅くてハード代がかかるのでCにするって、身の回りでは多いけどなあ。
特に事業とかコストを考えるとJavaでは苦しくなることが多い。
0459nobodyさん2006/08/12(土) 22:32:47ID:???
>>458
javaは動き出しちゃえば(そこそこ)速いんだよね。メモリバカ食いするけど。
今時のハードだと安くてもメモリさえ積めば充分だし。

プラットフォームが確定してればCの方がパフォーマンス良いけど、WebProgって
求められる機能がアホみたいにコロコロ変わるから、Cは向いてないよなぁ。
0460nobodyさん2006/08/14(月) 01:51:31ID:???
こんな時代だからこそ C+++CGI なんだと思った
0461nobodyさん2006/08/14(月) 13:13:13ID:???
Cばかりが速いとは限らない。
JITコンパイラの最適化能力と、GCの性能は一気に上がった。Javaも実際は一部JITで機械語にコンパイルしたり(いまだに完全インタプリタ言語だと思ってる人が数レス前にも)、メモリを予約するよう工夫されている。言語だけて決め付けるのは古い。
(しかしASP.NETの方がJavaわずかに全体的に速い。純MSの一部アセンブラ言語だから当然か。Win鯖限定)

CGIの起動の負荷もある。特に高負荷。

あと技術レベルとコスト。大したやつじゃないなら既存のC/C++をパパッとやって出来上がりだけど、さすがにネトゲの鯖プログラムをCでってのは勘弁してほしい。
JavaでStringを+で連結しまくる困ったちゃんもいるし、やっぱり言語を扱う人間のレベルの方が影響が大きいんじゃないか?

チラシの裏
某f〇2のアク解の鯖はOSからhttpdまで完全C++の自作らしい。どれだけさばけるのか気になる。
0462nobodyさん2006/08/15(火) 01:34:31ID:???
完全スクラッチを謳う鯖って大概NetBSDのカスタマイズだったりするからなぁ・・・
0463nobodyさん2006/08/15(火) 11:25:18ID:???
求められる機能がアホみたいにコロコロ変わるって仕様が十分に練れてないだけじゃん。
普通はハードは減価償却終わるまで替えないから、Cバイナリでも十分。

jit使うならiccやgcc使うのと変わらんだろ。
しかもjitなら全ソース無いとjitの意味ないし。

JbossみたいなJ2EEのワークフレームがCにも欲しい。

完全スクラッチである必要は無いと思うが。
組み込み系なのか?
0464nobodyさん2006/08/15(火) 13:01:56ID:???
C言語の依頼ならたまに来るけども(JavaとPHPがほとんどだが)、C++はほとんどない。なんでだろ?
0465nobodyさん2006/08/15(火) 13:45:40ID:???
>>463
お前さん、流れ読めてないだろ
0466nobodyさん2006/08/17(木) 00:55:09ID:???
そもそもC++である必要が無い。
マカが絶賛するObjCも必要性無いからマカ以外使われないし。

Javaの客ならサンの高い鯖でも買ってくれで対応出来るだろうけど、phpだと下手にアクセス数増えると大変だよね。
小規模サイトのうちは平和だけど。Javaに移ってくれでハードごと交換してもらえるほど余裕無い場合がほとんどだし。
0467nobodyさん2006/08/18(金) 00:58:54ID:???
いつまでも C/C++ なんていってるから散漫になってだめなんだよ。
強い C++ 文化を作らなきゃ。
0468nobodyさん2006/08/18(金) 01:05:04ID:???
いやもう正直いまさらつーか
0469nobodyさん2006/08/18(金) 13:19:43ID:???
現状ではC++ほどトータルバランスに優れる言語はないと思う。
でもC++の言語ポテンシャルに気づくまでには情報の壁があるよね。
URLデコード処理なんかistringstream使えば死ぬほど単純なのに。

C++に必要なのはC視点から脱却した体系的な解説サイトだな。
0470nobodyさん2006/08/19(土) 05:10:13ID:???
C++に必要なのは移植性
Cと違ってコンパイラによって対応度が全然違うから、
g++で通るのに商用UNIXのコンパイラでコンパイルが通らなかったりしてうんこ。
0471nobodyさん2006/08/19(土) 16:03:29ID:vMxG7enI
質問です。
C++でCGIを書こうと思ってC++勉強してるんですが、
POST methodで受信した文字列をcinでもらったり、
出力をcoutで出したりするのはセキュリティの観点等から見て
適切でしょうか?
Cだとfgetsとかputs使ってたんで、何をやってるかよくわからない
cinとかcoutはちょっと怖いイメージが…
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の最後の三文字を声に出して読んでください
■ このスレッドは過去ログ倉庫に格納されています