C/C++ CGIスレッド
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/02/26 08:58ID:GDAQuNNShttp://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/
0557nobodyさん
2007/06/20(水) 01:01:50ID:???Perlで毎日400ファイル更新してるけど2秒ぐらいだぞ @Pentium4
0558nobodyさん
2007/06/20(水) 01:07:54ID:???複雑なサイトだから、あちこちで多重ループをかける必要があったり、
レコード数がかなり多かったり。
できるだけ多重ループにならないように工夫もしたんだが、複雑すぎて無理…。
0559nobodyさん
2007/06/20(水) 02:22:17ID:???0560nobodyさん
2007/06/20(水) 04:30:38ID:???本当に複雑なシステムっていうのを作ったことがないでしょ?
官庁とかから一度受けてみると良いよ。
意味不明な仕様にこだわって、システムが無駄に複雑になる。
0561nobodyさん
2007/06/20(水) 06:23:39ID:???普通に処理した場合、Cと比較して数倍程度の差しか出ないでしょ。
もちろん、これはそれなりに時間のかかる処理をした場合。
(インタプリタの起動時間と内部コンパイルの時間があるから)
で、下手な奴が作ると、無駄な処理をループ内でやってたり
(不要な初期化とか正規表現のコンパイルとか)して時間がかかる。
Cならコンパイラが最適化してくれたりする部分でも。
0562nobodyさん
2007/06/20(水) 06:27:37ID:???だけど喜んで連想配列をループ内で初期化しまくったり
インデックスで参照できるのに何故かリニアに探索してたり。
0563nobodyさん
2007/06/20(水) 07:09:28ID:???確かにCでは最適化したけど、Perlはそこまで最適化したわけじゃないから、
かなりCに有利な比較ではある。
しかしCで作ってると、ウェブサーバにはほとんど負荷がいかないが、
その代わりDBがボトルネックになる。
Javaのレスポンス/オブジェクトキャッシュのように、
CでもDBの負荷を減らせるうまい方法はないものか・・・。
0564nobodyさん
2007/06/20(水) 07:27:51ID:???独立したプロセスだから、交信や共有は面倒。
じゃあapache moduleにすれば良いかと言うと、そうでもない。
これも、基本的にシングルプロセスのMPMは無いから
全体で共有することも出来ないし、
プロセス毎にキャッシュするとしても全体でのメモリ使用量等、効率が悪い。
時間が充分にあって自由自在に出来るのであれば
自前で簡単なシングルプロセス/マルチスレッドなサーバーを書いて
apacheでは、必要な時にそのサーバーと交信するmoduleを書いて使う、
というのが速度的にはベストだろう。
まあこのやり方は
実際にはapacheにtomcatを組み合わせるのと本質的な差はないけどね。
0565nobodyさん
2007/06/20(水) 10:18:48ID:???0567nobodyさん
2007/06/20(水) 22:08:35ID:???「これは○○県警さんでやった方法なんですが」
「では、それとはちょっと変えてください」
いや、別に変えなくても良いものは
無理して変えんでも良いがな...orz
0568nobodyさん
2007/07/02(月) 07:03:13ID:???毎回ソース渡してたら、いつかは喰えなくなる。
mod_perlが速いってことは無いな。perl自体重いし、perlもCで書かれてるから、perlの構文解析の分遅い。
結局は、常時起動デーモンのトムキャット方式に落ち着くよね。
誰もが通る道なのかと安心した(w
同じ方法だと同じ攻撃に弱いってのはあるから多様性って重要。
古い所のシステムだと、歴史的経緯で非効率な処理を求められることはよくある。
開発費高めでも払ってくれるので好きだけど。他と同じ単価なら受けないけどな。
0569nobodyさん
2007/07/04(水) 00:35:14ID:???Cには、JDBCみたいなのは無いよね?
0570nobodyさん
2007/07/04(水) 02:01:41ID:???ODBCとか使わなくても、Cならネイティブドライバ使えばいいのでは…。
他のDBへの移植性を上げたいのならODBCを使うしかないかな。
0571nobodyさん
2007/07/27(金) 15:06:25ID:HlWLP/Z4これって、なんなのでしょうか?、教えてください。
Windows 2003 Server、 IIS、Visual Studio 6.0 です。
0572nobodyさん
2007/07/27(金) 20:49:30ID:???PCローカルURIって言うとちと違うのかな?
0573571
2007/07/28(土) 08:51:56ID:QYOm8nEM回答どうもです
が、エクスプローラで「\\?\共有名\ファイル名」とやっても「見つかりません」となります。
(「\\コンピュータ名\共有名\ファイル名」だとOK)
0575nobodyさん
2007/07/31(火) 01:21:12ID:???別にいいけど
0576nobodyさん
2007/07/31(火) 01:39:34ID:???worker MPM使って、dispatchはApacheに任せ、データはshm/mmapで共有ってのが現実的だと思うなぁ。
>これも、基本的にシングルプロセスのMPMは無いから
>全体で共有することも出来ないし、
これミスリーディングだとおもうな。データ共有するのにシングルプロセスである必要なんて全くないだけだし。
0577563
2007/07/31(火) 03:20:02ID:???私もあれからいろいろ調べてみたら、
やはり共有メモリを使うって方法にたどり着いた。
ただしDBデータをキャッシュする場合、キャッシュの破棄タイミング、
新しいデータのキャッシュへの反映が難しい。
作成したページをキャッシュする場合も、やはり同じ問題が。
SQLサーバを使わない、もしくはSQLiteを使うとかすれば、
可能ではありそうだけど、それだとDBのクラスタリングが出来ないので意味がない。
PostgreSQLやMySQLのプラグインやトリガーという形で、
キャッシュ管理のプロセスに情報を伝える仕組みが要りそう。
さすがにこれだけの仕組みとなると、とても一人で作るのは無理そうだ。
0578nobodyさん
2007/07/31(火) 03:22:01ID:???例えば、1Gのメモリを積んでいてキャッシュ用途に大部分を使いたいと考えた場合
SHMMAXが数十M程度だとおおいに不満なのですけど。
あ、/proc/sys/kernel/shmmaxで充分な大きさに変更できるならば良いですがね。
それとも、細切れにブロックを確保して頑張ってやりくりしますか。
あと、shmではなくmmapを使う場合を含めて、当然排他機構が必要となるわけですが
たかがメモリの読み書き程度で重いといわれるプロセス間のロックはたまりませんね。
もちろん、プロセス間通信と比較すればずっと軽いでしょうが
ロック期間を短く(こまめにロック/アンロック)という、一般的に推奨される手法には向きませんな。
スピンロックで足りる用途だけならともかく。
0579nobodyさん
2007/07/31(火) 08:34:44ID:???>たかがメモリの読み書き程度で重いといわれるプロセス間のロックはたまりませんね。
汎用のロックを使わなければ良いだけだと思う。
mod_uploaderがやってるように、共有メモリ領域に対してCPUのatomic命令を使うとか。
ロック期間が短い→CPUのatomic命令
ロック期間が長い→signal
で十分対処できるような。そもそもお金かけて高いサーバ使うならともかくその辺の安いPCでサービス提供するなら別にスレッド使わなくても十分なような。
複数プロセス使うのに必ずしも重い汎用のプロセス間ロックを使う必要なんてないし、なんかミスリーディングだとおもう。最初に結論ありきで論じてませんか?
0580nobodyさん
2007/07/31(火) 09:43:21ID:???ほほー。
ttp://pc11.2ch.net/test/read.cgi/mysv/1173959386/397
システムコール使ってないし、こんなもんか
0581nobodyさん
2007/08/03(金) 23:31:03ID:LuhsKnBr詳しいことは理解できないけど>>578の性格が悪いことだけは分かった。
もっと普通にかけるだろうに。
0584nobodyさん
2007/08/11(土) 00:09:14ID:???ttp://www.gedoh.org/aki/2ch/current/bbs/
0585nobodyさん
2007/08/11(土) 10:14:45ID:???それちょっと古いやつね。
前ちょこっとソース読んだ限りでは、完全に2ch用に特化してるから、
汎用性もなにもあったもんじゃないし、ソースも読みにくい。
0586nobodyさん
2007/08/19(日) 21:44:36ID:???Perlっていうのは言語だからC言語でCGIを作るというのは
C言語でPerl言語を作るということなんですか?????
0587nobodyさん
2007/08/19(日) 23:42:55ID:???0588nobodyさん
2007/09/06(木) 17:50:36ID:VY4R4z3/入門書2冊読んだ程度でもできるでしょうか…?
ちなみにC言語以外の言語はやったことがなく
C言語歴も1ヶ月で大きなプログラムも作ったことがありません。
0589nobodyさん
2007/09/06(木) 17:51:48ID:VY4R4z3/入門書2冊読んだ程度でもできるでしょうか…?
ちなみにC言語以外の言語はやったことがなく
C言語歴も1ヶ月で大きなプログラムも作ったことがありません。
0590nobodyさん
2007/09/06(木) 18:18:03ID:???Cで文字列が自由自在になるには初心者が一ヶ月では少し足りないような。
まぁでもやって出来ないこたぁないよ。うん。
0591nobodyさん
2007/09/06(木) 19:22:43ID:VY4R4z3/自由自在…今持ってる本で文字列関係?でわかってないのは
str全般とcalloc、malloc、reallocぐらいなんですがここら辺を覚えれば結構違ってきますかね…?
0592nobodyさん
2007/09/06(木) 20:57:42ID:???POSTとか絡んでくると色々大変だけど
0593nobodyさん
2007/09/07(金) 03:00:06ID:???CGIに必要なライブラリを一通り作るだけで2週間かかったよ。
どこからかライブラリを拾ってこないと、全部一から作ってたら結構大変。
0594nobodyさん
2007/09/07(金) 06:49:22ID:NiQeHZNBここ見て頑張れ
http://www.boutell.com/cgic/
0595nobodyさん
2007/09/08(土) 17:40:25ID:vnaZ3dntそうですか・・・とりあえずまだ力不足だしそろそろ学校
も始まってたぶん作る暇もなくなると思うので今は
とりあえずもっと勉強してから作ろうと思います。
>>594
英語多すぎてわかりませんw
でもありがとうございます。出来るだけがんばって読んでみます。
0596nobodyさん
2007/09/09(日) 04:36:43ID:???最低限のライブラリって感じだね。
自作のライブラリってどれくらい容量or行数ある?>All
私のはPHP並に機能揃えたから2.5MBぐらい。
0597nobodyさん
2007/09/09(日) 10:12:18ID:???0599nobodyさん
2007/09/09(日) 12:50:20ID:2vrQ8w/W馬鹿だろ。手動かすまえに頭動かさないやつは死ね。
0600nobodyさん
2007/09/09(日) 16:00:59ID:???0602nobodyさん
2007/09/09(日) 23:55:25ID:???0603nobodyさん
2007/09/10(月) 01:02:01ID:???0605nobodyさん
2007/09/10(月) 21:42:08ID:???0606nobodyさん
2007/09/11(火) 12:54:32ID:???デカいライブラリをメンテするのはそれはそれで大変な気がする。
バージョン管理とか面倒そう。
というわけで、自前の奴はPOST/GETとエスケープくらいしかない。
あと、なんかのBSDライクな奴からパクってきた文字列処理と基本データ構造もあるが。
CでCGIってそれほど頻繁に必要になるわけじゃないんで、これで十分。
2.5MBってソースのサイズかね? それともバイナリ?
0607nobodyさん
2007/09/12(水) 14:06:22ID:aBsU5VcpをCGI上にて表示させる方法が知りたいのですが
@chara = ('A','B','C','D','E','F');
for($i=0; $i<8; $i++)
{
$numbera = $chara[int(rand($#chara+1))];
}
という表記を現在しています。
しかし、1文字しか表示されないのですが
8桁分ランダムに表示させるにはどのように表記したらよいでしょうか?
0610nobodyさん
2007/09/14(金) 08:33:15ID:???> CでCGIってそれほど頻繁に必要になるわけじゃないんで、これで十分。
こっちはメインで使ってるから、メンテとかもさほど気にならない。
> 2.5MBってソースのサイズかね? それともバイナリ?
ソースのサイズ。
バイナリは150〜500KBぐらい。
0611nobodyさん
2007/09/14(金) 11:17:14ID:???適宜外部ライブラリをリンクするのではだめなの?
PHP並の機能っていってもPHPがPHP並の機能をもっているのはPHPの中の人が
全部自分で書いたからじゃなく、たくさんの外部ライブラリとリンクしてるからなわけで。
それともフレームワーク的な機能がたくさんあるのかな?
0612nobodyさん
2007/09/14(金) 11:25:57ID:???0614nobodyさん
2007/09/15(土) 00:28:34ID:???0615nobodyさん
2007/09/18(火) 17:36:28ID:???http://msdn2.microsoft.com/en-us/library/aa365247.aspx
今更だけど、\\?\はパスの長さの制限をおよそ32000文字に拡張する接頭辞。
0617nobodyさん
2007/11/14(水) 02:10:36ID:???0618nobodyさん
2007/11/16(金) 00:44:52ID:vk2sEYR2Windows 2000のIISの環境でcgiからファイルをオープンしようとすると、オープンに失敗するんだが・・・
何でか誰かわかりますか?
Windows XPのIISの環境ではちゃんとオープンに成功します。
<環境詳細>
仮想ディレクトリ:Scripts
Inetpub/Scripts/cgi/cgi.exe (http://hostname/Scripts/cgi/cgi.exe)
Inetpub/wwwroot/form/form.htm (http://hostname/form/form.htm)
form.htmからcgi.exeにPOST。
cgi.exeは、起動されると Inetpub/Scripts/cgi/file/ フォルダにファイルを
作ろうとするんだけど、WindowsXPだとOpen成功、Windows2000だとOpen失敗。
0619nobodyさん
2007/11/16(金) 12:49:38ID:???フォルダの書き込み権限を確認する
0620nobodyさん
2007/11/16(金) 13:18:09ID:???http://code.google.com/p/google-ctemplate/
0622nobodyさん
2007/11/18(日) 23:17:33ID:???ソース見る限りClearSilverよりシンプルだから速そうだけど、機能が全然足りない予感。
まー、本格的に使うには、ClearSilverでも機能/汎用性/拡張性が足りなさそうなんだけどさ。
0623nobodyさん
2007/11/23(金) 16:15:53ID:???PHPで作っちまったほうが速いか?
0624nobodyさん
2007/11/25(日) 09:05:24ID:???あと>>564も
>自前で簡単なシングルプロセス/マルチスレッドなサーバーを書いて
>apacheでは、必要な時にそのサーバーと交信するmoduleを書いて使う、
>というのが速度的にはベストだろう。
え?って感じ。センス疑う。
0625nobodyさん
2007/11/25(日) 09:12:48ID:???0626nobodyさん
2007/11/25(日) 12:59:10ID:???0627nobodyさん
2007/11/25(日) 19:54:34ID:???0628nobodyさん
2007/12/11(火) 21:11:10ID:???その自信からするとサイボウスラボとかmixiとかその辺のなかの人でしょうか?
>というのが速度的にはベストだろう。
こう言い切る前にはいくつかの前提が必要なはず。
もしかして自分が普段接している前提条件の下でしか考えられない人?
0629nobodyさん
2007/12/11(火) 21:18:21ID:???理系だと卒論/修論書くうちにそのへんはみっちりなおされる。
0630nobodyさん
2007/12/12(水) 08:36:13ID:4x7KYrD10632迷う
2007/12/15(土) 08:28:11ID:???http://libcgi.sourceforge.net/
CGI++
http://www.webthing.com/cgiplusplus/
GNU Cgicc
http://www.gnu.org/software/cgicc/
cgic
http://www.boutell.com/cgic/
0633迷う
2007/12/16(日) 17:33:32ID:???0634nobodyさん
2007/12/18(火) 18:44:19ID:vyPDChvS0635nobodyさん
2007/12/18(火) 18:52:24ID:???0636nobodyさん
2007/12/19(水) 23:58:08ID:???0637nobodyさん
2007/12/20(木) 18:02:10ID:yjctAQBaそういう危機感がこのスレにあまりないのは
やっぱり掲示板とかCMS級のユーザーフレンドリ階層なアプリを誰もC++らないからなのか…
JIS, SJIS, EUCJP, UTF7, UTF8, UTF16, UTF32 と改行コードまで自動判別しつつ
相互変化できるクラスを作ろうとしたら死にかけた
0638nobodyさん
2007/12/20(木) 18:58:34ID:???他にもいろいろあるでしょ?
0639nobodyさん
2007/12/20(木) 19:10:00ID:???それでもある程度バイト数がないと難しいだろうけど。
できればcharset指定とかを認識して、判断するのが正しいけど、
Webブラウザから渡されるのはcharset指定とかが一切ないからなー。
SJISかUTF-8のどっちを渡されたかは、予め決めておくか、
Gaucheのを使って判定するしかない予感。
変換は普通にiconv使ってる。
0640nobodyさん
2007/12/20(木) 19:20:22ID:???0642nobodyさん
2007/12/23(日) 20:42:35ID:???0643nobodyさん
2007/12/25(火) 14:44:19ID:???あれ、C+iconvじゃなくてjavaだったかな。
0644nobodyさん
2007/12/25(火) 17:02:56ID:???0645nobodyさん
2008/01/22(火) 12:04:42ID:???どなたかご存じないでしょうか?
0646nobodyさん
2008/01/22(火) 13:08:58ID:???0647nobodyさん
2008/01/22(火) 19:09:37ID:???を解析するライブラリが欲しいです。
JavaでいうとCommons FileUploadのような
0650nobodyさん
2008/01/28(月) 13:56:18ID:???cgiをコマンドラインから直接起動したいんだけど
POSTやGETで渡す引数を模擬するにはどうしたらいい?
0651nobodyさん
2008/01/28(月) 14:39:15ID:???0652nobodyさん
2008/01/28(月) 14:57:11ID:???REQUEST_METHODとかCONTENT_TYPEとかCONTENT_LENGTHとかの
環境変数も設定する必要があるだろ。
0654nobodyさん
2008/01/31(木) 15:15:22ID:4cRt7TvD成分分析のフリーCGIをどなたかご存じないですか?
0655nobodyさん
2008/02/03(日) 05:14:18ID:???サンプルソースがおいてあるサイトわかる人いる?
0656nobodyさん
2008/02/04(月) 10:06:40ID:???とりあえず使うには十分じゃない?
0657nobodyさん
2008/02/05(火) 13:31:05ID:???■ このスレッドは過去ログ倉庫に格納されています