1 名前:nobodyさん [04/02/26 08:58 ID:GDAQuNNS] C言語CGI専用スレッド pc2.2ch.net/test/read.cgi/php/988918264/ C/C++ CGI 専門のスレッドです。 スクリプトを検索できるサイトです。 cgi.resourceindex.com/Programs_and_Scripts/C_and_C++/ www.cgifiles.com/scripts/cc++/index.shtml 前スレ pc2.2ch.net/test/read.cgi/php/988918264/
98 名前:nobodyさん mailto:sage [04/05/25 09:45 ID:???] POSTの場合は? ってゆうかそのあたりも含めて楽になるperlのCGIモジュールみたいなのとかあるんでしょうか?
99 名前:nobodyさん mailto:sage [04/05/25 13:14 ID:???] POSTはstdinから。 aprとか使えば少しは楽になるかも apr.apache.org/
100 名前:nobodyさん mailto:sage [04/05/25 17:05 ID:???] GETも POSTも、環境変数渡しという点ではほとんど同じ。POSTの方がちょっぴり手間が多いだけ。 POSTの場合は、環境変数 CONTENT_LENGTHに、POSTされた文字列長が入っているので、 そのぶんだけ stdinから読み込む。簡単に書くとこんな感じ。 int i; char * env_p; env_p = getenv( "CONTENT_LENGTH" ); if( NULL == env_p ) { /* 何もないです */ } else { for( i = 0 ; i < atoi( env_p ) ; i ++ ) { /* ここで getchar とかする */ } } こういう定型処理をラクにするライブラリとかは、いろいろ出回ってるから探すが吉。
101 名前:nobodyさん mailto:sage [04/05/28 21:45 ID:???] 自分もその辺気になりつつも資料見つけられず躊躇してたんですが 挑戦してみようと思います。 /*ただスクリプトの時にはあまり気にしなかったメモリ管理とか不安もあります。 何かしら”C/C++ゆえに気をつけるべき事”とかあるんでしょうか?*/
102 名前:nobodyさん mailto:sage [04/05/29 10:51 ID:???] C++はあまり詳しくないが、Cについて気を付けるべき事はたくさんありすぎて、とてもここでは書ききれないがな。 漏れが言えるのはこれくらい。レベル的にバラバラの事書いててスマソ。 ・取得したメモリリソースは必ず解放せよ ・変数の型には気を付けすぎるくらい気を付けよ(ロジック調べても分からんバグの原因になる) ・ポインタは理解して使え ・コンパイルするので、変数名は長くてもいい、分かりやすいものを! ・同じ理由で、コメントもしつこく書け ・同じ理由で、短く書こうとするな(バグの原因になる事がある) ・1つの関数を長くしすぎるな ・==演算子で定数と変数を比較する時は、定数を左辺に書け(間違って=にしてもすぐ分かる) ・プログラムテストは慎重に細心に、完璧を目指せ
103 名前:nobodyさん mailto:sage [04/05/30 01:08 ID:???] C++でも入出力系はstdioのほうがやり易いと思う 小さいし
104 名前:nobodyさん mailto:sage [04/05/30 05:37 ID:???] >>101 Cなら文字列操作とメモリ管理のライブラリをどこかから調達するか、 自作してから取り掛かった方がいいよ。 バッファオーバーフロー対策が一番面倒だから。
105 名前:nobodyさん mailto:sage [04/05/31 18:03 ID:???] perlとかにあるsplit関数に当たるものがあると便利
106 名前:nobodyさん mailto:sage [04/05/31 19:24 ID:???] >>102 ありがとうございます。 C/C++以外でも使えそうなTIPSが多くて参考になります。 慎重さは勿論のこと、ちょっとした工夫も大事と再認識しました。 >>104 こちらもありがとうございます。 まずはそういうライブラリを読むところから始めてみますね。
107 名前:nobodyさん mailto:sage [04/06/01 00:28 ID:???] 昔、Lispやっててperlのsplit関数自作したことあったな
108 名前:nobodyさん [04/06/06 21:23 ID:NScYEbPc] jcode.plのようなものってありませんか?
109 名前:nobodyさん mailto:sage [04/06/06 21:48 ID:???] iconv
110 名前:nobodyさん [04/06/07 01:33 ID:H9Q5V/FE] C/C++/D用(ってかx86用)のアプリケーションサーバが出たら乗り換えますか? 関数、クラスの単体テストエンジンとかついたようなヤツで。
111 名前:nobodyさん mailto:sage [04/06/11 01:06 ID:???] スタンドアローンて拡張性無いけど手軽なのよね
112 名前:nobodyさん mailto:sage [04/06/26 15:46 ID:???] perlやphpに比べて生産性が低くて不利ですな。 mod_perlにスピードで負ける事もあるし。 mod_cobolとかあるのかしら
113 名前:nobodyさん mailto:age [04/06/26 15:49 ID:???] ( ´_ゝ`)フーン
114 名前:nobodyさん [04/06/27 18:25 ID:EhMRIfAG] すまん、CでCGI作るときに便利なライブラリとかってないかな。 探しても探してもでてこないんだが・・・
115 名前:nobodyさん mailto:sage [04/06/27 20:07 ID:???] ( ´,_ゝ`)プッ
116 名前:nobodyさん [04/06/27 20:10 ID:EhMRIfAG] こんなに必死に頼んでいるのに教えてくれないなんて、 ここはひどいインターネットですね!
117 名前:nobodyさん mailto:sage [04/06/27 20:21 ID:???] (・∀・)ニヤニヤ
118 名前:nobodyさん mailto:sage [04/06/27 20:25 ID:???] 2chだからある程度は割り切らないと
119 名前:nobodyさん [04/06/27 20:43 ID:EhMRIfAG] // ここはひどい(ry のネタ知らない人がいるっぽ 探してもやっぱり見つからんです。
120 名前:nobodyさん mailto:sage [04/06/27 20:56 ID:???] いい加減なやつしかいないスレにはいい加減に書き込めばいいんだよ
121 名前:nobodyさん mailto:sage [04/06/27 21:56 ID:???] >>114 >探しても探してもでてこないんだが・・・ www.gnu.org/search/fsd-search.py?q=CGI お好きなのをどうぞ。
122 名前:nobodyさん [04/06/28 16:49 ID:Mb32PIG4] webminなんかがどう関係あるんだろうと小一時間(ry
123 名前:nobodyさん mailto:sage [04/06/28 18:59 ID:???] フォームのデコード&検索クラスがあればあとはどうでもいいけどね 所詮ラインプログラムだし
124 名前:nobodyさん mailto:sage [04/06/28 19:14 ID:???] >>122 gnu.orgの人に聞いてくれたまえ。
125 名前:nobodyさん mailto:age [04/06/29 15:43 ID:???] gnu.orgの人も大変だな
126 名前:nobodyさん [04/06/29 18:42 ID:iEl5sUlF] ttp://www1.harenet.ne.jp/~a-mura/cgisoft/dakentype/dakentop.html これに英文の問題を入れたい場合、Word.jsはどのようにいじれば?
127 名前:大学の宿題だけど意味不明、おしえてけろ [04/07/02 22:30 ID:rGD5/XCW] 下記のフォローチャート教えて! 2進数の乗算 シフト演算と加算と減算の繰り返しによって2進数の乗算を行う。 条件 一、乗算と被乗算は符号なしの16ビット整数 二、乗算と被乗算以外の変数は32ビット整数 三、シフトは論理シフト(表記方法:左シフトは<、右シフトは>) 例、 X=X<1 Y=Y>1 参考 一、左シフト⇒nビットシフトは(2のn乗)倍になる 二、右シフト⇒nビットシフトは{1/(2のn乗)}倍になる 一般法則 一、乗数の2の0乗ビットが1の時、被乗数をそのまま加算し、 0の時は何もしない。 二、乗数の2のn乗ビットが1の時、被乗数をnビット左シフト して加算する。0の時は何もしない。 ( 開 始 ) | X = 被乗数 Y = 乗数 Z = 0 ←←乗算結果 |
128 名前:nobodyさん mailto:sage [04/07/02 22:40 ID:???] ローカルルールくらい読んでくれな
129 名前:大学の宿題だけど意味不明、おしえてけろ [04/07/02 22:45 ID:rGD5/XCW] 下記のフォローチャート教えて! 図形の右90度回転 配列H[Y:1〜7][X:1〜7]は、図のような図形要素が 格納されてます。これを図2のように右に90度回転 した配列要素を配列I[Y:1〜7][X:1〜7]へ作成する。 図1 X軸 1 2 3 4 5 6 7 1■■■■■■■ 2 ■ y 3 ■ 軸 4 ■ ■■■ 5 ■ ■ 6 ■ ■ 7■■■■■■■ 図2 x軸 1 2 3 4 5 6 7 1■ ■ 2■■■■ ■ 3■ ■ 4■■■■■■■ 5■ ■ ■ 6■ ■ ■ 7■ ■
130 名前:nobodyさん mailto:sage [04/07/03 00:39 ID:???] >>129 (Start) ↓ [回転処理] ↓ (End)
131 名前:nobodyさん mailto:sage [04/07/03 11:52 ID:???] $gzip = '/bin/gzip/'; if($ENV{'HTTP_ACCEPT_ENCODING'} =~ /gzip/ && $gzip ne ''){ print "Content-type: text/html;charset=Shift_JIS\n"; if($ENV{'HTTP_ACCEPT_ENCODING'} =~ /x-gzip/){ print "Content-encoding: x-gzip\n\n"; }else{ print "Content-encoding: gzip\n\n"; } open(STDOUT,"| $gzip -1 -c"); }else{ print "Content-type: text/html;charset=Shift_JIS\n\n"; } これのC版はどうすればいいんですかね・・・?
132 名前:nobodyさん mailto:age [04/07/03 11:53 ID:???] ( ゚д゚)ポカーン
133 名前:nobodyさん [04/07/05 15:51 ID:/46odsg/] Cで画像のアップロードCGI作ってるんだけど、 データの取得の方法が分からんのよ。 if ( strcmp(method, "POST") == 0 ) { // コンテンツ長の取得 contentLength = getenv("CONTENT_LENGTH"); // バッファサイズの判定 if( atoi(contentLength) > LINE_BUFFER ) { // バッファサイズエラー exit(0); } fgets(Data, (int)contentLength, stdin); } これじゃDataには入らないの?
134 名前:nobodyさん mailto:age [04/07/05 16:25 ID:???] % man 3 fgets
135 名前:nobodyさん mailto:sage [04/07/05 16:27 ID:???] >>133 >これじゃDataには入らないの? www2k.biglobe.ne.jp/~motoi/cdecgi02.html 参考になるかも。 アップロードの場合、 getenv("CONTENT_TYPE")がapplication/x-www-form-urlencoded じゃなくて、multipart/form-data; boundary=----------hogehogeohogehoge ってなってるはずだから読み込んだデータを分離する必要あるんじゃない?
136 名前:nobodyさん [04/07/05 18:14 ID:/46odsg/] >multipart/form-data; boundary=----------hogehogeohogehoge >ってなってるはずだから読み込んだデータを分離する必要あるんじゃない? 色々と試した結果、データ分離前まではできました。 分離させんの大変そうだなぁ。
137 名前:nobodyさん mailto:age [04/07/05 18:16 ID:???] ( ゚д゚)ポカーン
138 名前:nobodyさん mailto:sage [04/07/05 18:49 ID:???] >>137 ageてまで何が言いたいのかわからん。 いいあるなら方法教えてよ。
139 名前:nobodyさん mailto:sage [04/07/05 20:15 ID:???] 教えて君ウザイ
140 名前:いいあるなら mailto:いいあるなら [04/07/05 21:12 ID:???] いいあるなら
141 名前:138 mailto:age [04/07/05 21:38 ID:???] >>139-140 , -‐−-、 ヽ∧∧∧ // | . /////_ハ ヽ< 釣れた!> ハ レ//j け ,fjlリ / ∨∨V ヽ h. ゚l; ハイイト、"ヮノハ // |::: j 。 /⌒ヽヾ'リ、 // ヾ、≦ ' . { j`ー' ハ // ヽ∧∧∧∧∧∧∨/ k〜'l レヘ. ,r'ス < 初めてなのに > | ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!> . l \ `ー‐ゝ-〈/´ / ∨∨∨∨∨∨ヽ l `ー-、___ノ ハ ´ ̄` 〈/‐-、
142 名前:nobodyさん mailto:sage [04/07/05 22:36 ID:???] stdinから丸呑みしてファイルにでも保存してみろ。
143 名前:138 mailto:age [04/07/05 23:42 ID:???] >>142 またまた釣れた。
144 名前:nobodyさん [04/07/06 08:43 ID:LzoVUw8w] CでCGIは既に古典的なんだから 知らない人の手助けでもせんと このスレの意味ないじゃん
145 名前:nobodyさん mailto:sage [04/07/06 09:27 ID:???] % man 2 read % man 3 fread % man 3 fgets
146 名前:nobodyさん mailto:age [04/07/06 10:28 ID:???] ここは、そんな餌で俺がクマーなインターネッツですね
147 名前:nobodyさん mailto:sage [04/07/06 11:39 ID:???] プログラム板へ書き込んだのですが放置されました。。(涙) マルチで申し訳ないですが再度書き込まさせていただきます。 この度RedHat7.3(@)からRedHat9(A)へ移行したのですが、 @で問題なく動作していたCGIがAの環境で一部動作しなくなりました。 //環境 @RedHat7.3 gcc-2.96-113 apache-1.3.27-2 ARedHat9 gcc-3.2-2-5 httpd-2.0.40-21.9 原因を調べていくとどうも日付計算部分がエラーを起こしているようです。 一般的な日付計算ですが何が問題なのか検討もつきません。 (ググッたのですが・・わかりませんでした。。gccが原因??) どなたか教えていただけないでしょうか?よろしくお願いいたします!! ※apache1.3.31でも同様の現象がおきました。。。 /*-----ソース一部抜粋------*/ #include <stdio.h> #include <time.h> struct tm*ptr; time_t lt; intNowYY, NowMM, NowDD; lt = time(NULL); ptr = localtime(&lt); NowYY = ptr->tm_year + 1900; NowMM =ptr->tm_mon + 1; NowDD = ptr->tm_mday; /*----------------------*/
148 名前:nobodyさん mailto:age [04/07/06 11:42 ID:???] 機種依存文字使うなヴォケ
149 名前:147 mailto:sage [04/07/06 11:50 ID:???] 書き忘れましたが、Cで作っているプログラムです。コンパイル問題なく通ります。 apacheのエラーログを見ると”premature end of script headers”と出ているので どうもhtmlに出力時にCGIが死んでる見たいです。 同じ現象が出ている人も多いと勝手に思ってるのですが、私だけなんでしょうか?? ググっても perlのことばかりなんで・・・・
150 名前:147 mailto:sage [04/07/06 11:53 ID:???] >>148 localtime(&lt);のことですか? &を大文字で書かないと2ちゃんに書き込むときに ">"に変換されてしまうんで・・・
151 名前:nobodyさん mailto:sage [04/07/06 12:03 ID:???] なんだ、ネタだったのか… 釣られちゃったよ orz
152 名前:nobodyさん [04/07/06 12:07 ID:NBQAU1O/] CGIの出力でSSIを使いたいのですが 使えます?使ってる人いますか?
153 名前:nobodyさん mailto:sage [04/07/06 12:19 ID:???] (´-`).。oO(アホか・・・)
154 名前:152 [04/07/06 12:23 ID:NBQAU1O/] >>153 なんで?なんでアホなの?? サーバーがパースしてくれないから絶対使えないの??
155 名前:nobodyさん mailto:kuma [04/07/06 12:25 ID:???] そんな餌で俺がクマー(AA略
156 名前:152 [04/07/06 12:27 ID:NBQAU1O/] マジな質問でも釣りとかいわれるスレなんだね・・・
157 名前:nobodyさん mailto:sage [04/07/06 12:29 ID:???] それ以前にスレ違い
158 名前:152 [04/07/06 12:33 ID:NBQAU1O/] なんで?CのCGIでSSIを出力したいんだよ? このスレジャン
159 名前:nobodyさん mailto:sage [04/07/06 12:38 ID:???] こいつはCのCGIで出力するhtmlについてもここで聞くのだろうな・・・
160 名前:152 [04/07/06 13:20 ID:NBQAU1O/] >>159 知らないんだろ?w
161 名前:nobodyさん mailto:sage [04/07/06 13:28 ID:???] 釣れますか?
162 名前:152 [04/07/06 13:30 ID:NBQAU1O/] くだらない釣りすんなよ・・スレ汚しが・・・
163 名前:nobodyさん mailto:sage [04/07/06 13:31 ID:???] このスレ、なんか臭いな
164 名前:152 [04/07/06 13:34 ID:NBQAU1O/] お前が臭くしたんだよ・・・
165 名前:147 mailto:sage [04/07/06 13:41 ID:???] >>151 さん ネタじゃないんですよ。。本気で悩んでます。。 >>152 さん SSIを使いたいというのはよくわからんのですが 特定のHTMLの一部分に数値等を表示させたいということでいいんですか?
166 名前:nobodyさん mailto: [04/07/06 14:01 ID:???] localtime(<);
167 名前:152 [04/07/06 14:11 ID:NBQAU1O/] >>165 <!--#include file="他のファイル.html" -->を使って他のhtml ファイルを取り込んでブラウザーに出力できないかなって思ったんです。 SSIってhttpdがファイルをパースして結果を置き換えますよね・・・ なんで出力をパースさせればいいのかな?? CGIからの出力をパースさせるのはhttpdの設定(apacheなんでhttpd.conf)?? なんて考えてたんですけど実際はどうすればいいのかわからないので 質問してみたんです・・・・・
168 名前:nobodyさん mailto:sage [04/07/06 14:28 ID:???] SSIの基本を理解してないならくだ質スレへどうぞ
169 名前:152 [04/07/06 14:35 ID:NBQAU1O/] >>168 はあ?どこがわかってねえっていうんだよボケ! つーかどこが理解してないかいえねえだろ? トリアエズくだらねえツッコミばっか入れてるキモイてめえはこんりんざいだまってろ アホ。
170 名前:nobodyさん mailto:sage [04/07/06 14:38 ID:???] どうもならんな・・・ 己の無知に気がついていない
171 名前:152 [04/07/06 14:45 ID:NBQAU1O/] 何もいわないで適当に批判すれば頭がよくみられるんだなこのスレでは・・・
172 名前:nobodyさん mailto:sage [04/07/06 14:50 ID:???] もう回答は得られないのだから好きに吠えていろ池沼
173 名前:nobodyさん mailto:sage [04/07/06 15:00 ID:???] おまいら、これでも見てモチツケ www.sweetnote.com/images/5604972680f574242200eccb0dc39af4.jpg www.sweetnote.com/images/549af04143a8f0a1c24a5c1826ab3234.jpg
174 名前:152 [04/07/06 15:03 ID:NBQAU1O/] 147みたいなまともな人もいるんだけど、 172みたいなどうしようもない負け犬がわんわん吠えると とたんに堕スレになっちゃうな。
175 名前:nobodyさん mailto:sage [04/07/06 15:19 ID:???] >>173 見れないよう
176 名前:147 mailto:sage [04/07/06 15:45 ID:???] >>152 あんまりあつくなっても・・・・ SSIうんぬんではなくて Cでパースして出力すればできるのでは?
177 名前:黒死犬 ◆EgxBlf8nvc mailto:sage [04/07/06 16:45 ID:???] AddType
178 名前:fff mailto:sage [04/07/06 16:50 ID:???] >>SSI httpd.apache.org/docs/misc/FAQ-F.html#ssi-part-iii という感じで、"You can't."だと。しかし、 This is a feature The Apache Group hopes to add in the next major release after 1.3. で、付加される機能かも知れない。知らないが。
179 名前:nobodyさん mailto: [04/07/06 16:56 ID:???] >>147 とりあえずprintfとかでヘッダーを出力した後にfflushしておけばそのエラーは出ないかも。
180 名前:179 mailto: [04/07/06 17:08 ID:???] というか、その前に落ちているのか。 おそらく問題は他にある。
181 名前:黒死犬(魚かも) ◆EgxBlf8nvc mailto:sage [04/07/06 17:18 ID:???] ヘッダにいらんもん出力してるって分かってんだから プログラムが出力してる内容を見れば良いだけじゃない・・・
182 名前:nobodyさん mailto:sage [04/07/06 17:19 ID:???] >>181 ヘッダを出力する前に落ちているだけだろ。馬鹿かお前は。
183 名前:黒死犬(魚かも) ◆EgxBlf8nvc mailto:sage [04/07/06 17:21 ID:???] いやいや、違いますよ >>149 を読んでください
184 名前:黒死犬(魚かも) ◆EgxBlf8nvc mailto:sage [04/07/06 17:22 ID:???] すまそ誤爆った でしゃばってすまぬ
185 名前:nobodyさん mailto:sage [04/07/06 17:22 ID:???] 落ちてヘッダを出力していないから「premature end of script headers」になるんだよ。
186 名前:nobodyさん mailto:sage [04/07/06 17:32 ID:???] CGIが出力するhtmlにSSIを書いても動きません。 はい終了。 方法はあるけど152みたいなやつには教えん。
187 名前:nobodyさん mailto:sage [04/07/06 17:40 ID:???] 少なくともapache 2.0.50で動くことは今確認できた でも完全にスレ違いの話題だな >>152 はこんなところで煽ってる暇があったら自分で調べろよヴォケ
188 名前:147 mailto:sage [04/07/06 17:58 ID:???] 179さん、黒死犬(魚かも)さん、187さん アドバイスありがとうございます。 プログラムの内容は、 @入力フォームのhtmlの数値を取り込み計算 A計算結果画面のhtmlに計算結果数値を埋め込んでいく という一般的なものなんです。 Time関数を使用している箇所を除くと表示できるのですが。。 187さんの言うとおりapacheの問題かもしれませんね。2.0.50で試してみます。 スレ違いで申し訳ありませんでした。
189 名前:nobodyさん mailto:sage [04/07/06 18:02 ID:???] >>188 シェル上で擬似的なパラメータを渡してテストとかしないの? >Time関数を使用している箇所を除くと表示できるのですが。。 そこまでわかっているのなら簡単なサンプルでデバッガのお世話 になるとか?
190 名前:147 mailto:sage [04/07/06 18:11 ID:???] >>189 うっ・・おっしゃるとおりです。。 問題の部分のみで再度チェックいたします。
191 名前:nobodyさん mailto:sage [04/07/06 18:19 ID:???] >>188 >>187 はSSIのことね CGIが出力したSSIが動くということ >>147 は>>189 タンの書いた通り まずコマンドラインから実行できるかどうかチェックすべき あとは、ヘッダを出力する前に落ちているのであれば 原始的な方法だけど、ヘッダを出力する場所を変えてみるとか 最初にヘッダを出力した場合動くかどうか
192 名前:nobodyさん mailto:sage [04/07/06 18:21 ID:???] >>188 機種依存文字を使うなと前にも言われただろ
193 名前:nobodyさん mailto:sage [04/07/06 20:57 ID:???] >>169 こんな暴言吐く人に回答する義理も無いわけで。 漏れはスルーしてたけど、ここの住民さんは意外と優しいのだな・・・。
194 名前:152 [04/07/07 08:18 ID:Zb/loxvw] >>176 そうですよね・・・SSIにこだわる理由はないですね・・・ 冷静に考えたらオーバーヘットもあるしSSIを出力する意味ないですよね。 素直にCでパースします。ありがとうございました。 >>俺様に暴言を吐いた有象無象ども おめえら使えねえんだよ、アホ。 たいした知識でもねえのに出し惜しみするチンカスは一生すっこんでろボケ。
195 名前:nobodyさん mailto:age [04/07/07 09:28 ID:???] なんだ、結局SSIで動かすことができなかったんだな(プ
196 名前:152 [04/07/07 10:55 ID:Zb/loxvw] >>195 出来たけどお前には教えない(プ
197 名前:nobodyさん mailto:sage [04/07/07 16:01 ID:???] 【厨房のための煽り煽られ講座】 言い返せないけど負けは認めたくない → ( ´,_ゝ`)プッ → 無知白痴は黙ってろ → 知能障害をおこす → 出来たけどお前には教えない(プ ←>>152
198 名前:nobodyさん mailto:sage [04/07/08 02:16 ID:???] まぁ夏だからしょうがないのか・・・