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/
0529496
2007/04/27(金) 18:44:00ID:???どうも。
0530496
2007/04/28(土) 11:27:25ID:???ここって人いないですね。
0531496
2007/04/28(土) 20:44:43ID:???プロセスとして残ってしまったら
どうやって終了させればいいんですか?
0534nobodyさん
2007/05/02(水) 01:28:56ID:???0535nobodyさん
2007/05/07(月) 00:58:27ID:WXo0gSV8How to Program in C++って本で
「ユーザーが一度注文したアイテムを
ショッピング・カートから消せるようにviewcart.cgiを変更しなさい」
って問題があるんですけど、流れ的にはどうやればいいんですか?
viewcart.cgiは元々ユーザーが注文したアイテムを表示するだけのcgiです。
各アイテムにボタンは追加しました。
ただ、shopping.cgiからコピーしてきただけなので
押すとアイテムの数が一つずつ増えていきます。_| ̄|○
クッキーをostreamで開いて直接消してやらないとダメですか?
でも、途中にあるデータを消すのって大変ですよね…
後ろのを全部コピーしておいてまたペーストとか…。
一般的にはこういうのはどうするんですか?
ヒントをください。そしたら、自分でやってみます。
0536535
2007/05/07(月) 01:05:44ID:WXo0gSV8ttp://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:???まずセッションの使い方を学ぶべし
0538535
2007/05/07(月) 05:38:49ID:WXo0gSV8いや、別に実用するわけじゃないんで
「やっつけ」でカートの中身をcookieに持ってていいんですけど。
(client.txtなんてパスワード暗号化なしですしw)
cookieのいじり方も知っててのレスですよね?
cookieのデータの削除の方法を教えてください。
この本には追加する方法しか書いてないんですよ…。
さっきから検索してるけど全然そういうサイトが見つかりません…。
0539535
2007/05/07(月) 05:40:36ID:WXo0gSV8この本の他の問題は全部解いたんですよ。
あとはこれだけなんでどうしても終わらせたいんです。
0540nobodyさん
2007/05/07(月) 08:48:04ID:???あと前提があるならちゃんと最初に書こうな。お互い二度手間だ。
0541nobodyさん
2007/05/07(月) 08:55:11ID:???0542535
2007/05/09(水) 22:54:06ID:AhyOmpI4一つの問題にしては時間がかかりすぎたんでもう諦めました。
本に載ってないことをやらそうとするのが悪い。w
ご協力ありがとうございました。
0543nobodyさん
2007/05/09(水) 22:56:01ID:???0544535
2007/05/09(水) 22:58:36ID:AhyOmpI4速攻ですな。w
いやね、キーを検索して空白やらマーカーやらで上書きまではやっても
削除にまでは至らなかったんですわ。
ちなみに自分は30歳超えてます。wwwwwwwwww
0545nobodyさん
2007/05/09(水) 23:30:29ID:???0546535
2007/05/09(水) 23:40:33ID:AhyOmpI4その通り!異論なし!w
ま、人間何事もコピーから始まるんですよ。
自分は終わりもコピーですが。
0547http://softbank219023243191.bbtec.net.2ch.net/
2007/05/10(木) 06:57:35ID:???0548nobodyさん
2007/05/10(木) 23:09:33ID:AA4DnND/0549nobodyさん
2007/05/11(金) 18:17:50ID:???0550nobodyさん
2007/06/07(木) 22:32:05ID:GrrIKIFJ0551nobodyさん
2007/06/08(金) 00:26:44ID:WTsEXDzF0552nobodyさん
2007/06/08(金) 03:18:28ID:???0554nobodyさん
2007/06/18(月) 07:16:24ID:???PerlかPHPかで練習してからじゃないと、
ちょっとした掲示板作るのにすら1ヶ月以上はかかるんじゃないかな。
でもアクセスが集中する大規模サイトは、
Cで書かないとサーバ負荷が高くなりすぎて持たない。
なので、yahooとかもCで書いてる。
そしてCで書く人は、本格的に仕事で書いてる人が多いから>>451になり、
このスレも伸びない。
0555nobodyさん
2007/06/19(火) 21:49:28ID:???Cで書いたって、CGIとして使うなら、一般的にmod_perl使うよりも遅くなる。
速さを追求するためにCを使うんだったら、apacheのmodule書いて、自分で
リクエストを捌くに限る。
C/CGIって、余程特殊な場合(Cしか出来ないとか、ソースを渡したくないとか)
を除いて、メリット無いのよね。
0556nobodyさん
2007/06/20(水) 00:49:44ID:???2chのような掲示板の場合は確かにそうだけど、
いろいろ複雑な処理をする大規模サイトになってくると、結局C最強。
前に管理系CGIでボタンを押すと、最新のデータをもとに
サイト内のHTMLを更新するシステムを作ったんだが、
HTMLの数が数百レベルになって、
PHPやPerlだと数分待っても処理が終わらないということに。
Cで作り直してチューニングしたら、わずか数秒。
最近はWebアプリにいろんなことをさせようとしてるから、
ますますWebアプリの処理速度が重要になってくると思うな。
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とかその辺のなかの人でしょうか?
>というのが速度的にはベストだろう。
こう言い切る前にはいくつかの前提が必要なはず。
もしかして自分が普段接している前提条件の下でしか考えられない人?
■ このスレッドは過去ログ倉庫に格納されています