C/C++ CGIスレッドat PHP
C/C++ CGIスレッド - 暇つぶし2ch369:nobodyさん
05/05/20 10:35:30
>>367
CのCGIライブラリでも使え
検索したらあるはず

370:367
05/05/20 15:58:18 UC8INN3X
>>369
CGI用のライブラリーってありますけど製作者のあくがつよすぎて理解するのが大変なんですよね・・・
なんで自分で関数から作った方がいいと思ってるんですよ・・・勉強にもなるし。

371:nobodyさん
05/05/20 16:16:48
>>370
だから、そういったライブラリがあるだろ。
アクが強いとか関係無しに、どういう仕組みかが分かってないから
>>367のような質問をしたんでしょ?

既に動いてるライブラリのソースコードを読めば、そこに答えなりヒントがあるでしょ。
それを応用して自作すればいい。

アクが強いとか理解が大変とか言ってるが、結局、頭悪いだけじゃん。

372:nobodyさん
05/05/20 16:23:25
>>367
URLリンク(www.gnu.org)
つかっとけ。

書き込み見る限り、君のおつむじゃこれよりもまともなのを作るのは無理。

373:nobodyさん
05/05/20 17:27:26
>>367
URLリンク(www.boutell.com)
GDライブラリ開発してるところ
2.0からファイルアップロードに対応してる

374:367
05/05/21 07:08:21
やれやれ・・
コード読め?
読むような質問じゃあないだろうに。あほ
コード読め、コード読め、って猿の一つ覚えのような回答しかできないんだったらだまってろよ。
そのほうが百倍有益w

375:nobodyさん
05/05/21 10:33:25
aso

376:nobodyさん
05/05/21 16:05:50
>>374
読まなくていいから、パクれ。

377:nobodyさん
05/05/21 17:00:57
だれも「読め」とは言ってないが。

日本語は読めて、理解できるよね?理解の方がおぼつかないのかな?
そういうのは十代のうちになんとかしといたほうが良いよ。本当に。

378:nobodyさん
05/06/02 04:47:54 tNFRcCbR
getenv("PATH_INFO")で文字列取る時に
事前に長さが分からないから異常に長いURLでアクセスされたらやばくない?
と思うんだけど。
このPATH_INFOの文字列のポインタが分かればstrlenで長さを求めて弾くなり必要量mallocするなり出来るけど、
値しか分からないよね?
普通はどうやってこの問題を回避するの?

379:nobodyさん
05/06/02 07:21:13
getenvを使ったことがある人からは
そんな疑問は出ないはずだが

380:nobodyさん
05/07/24 09:53:58 FFgeh8au
話題がないお

381:nobodyさん
05/07/25 08:35:49
>>378
亀さんのレスです
Apache様が長いURLは規制してくれています

382:nobodyさん
05/07/25 23:47:14 bB/wQjJG
自分のサイトがF5アタックにめちゃくちゃ弱いことに気づいた。
セッション管理のためにページを開くたびにMySQLに問い合わせに行ってるのですが、もっと良い方法があるのでしょうか?

383:nobodyさん
05/07/26 07:44:25
防御コード書けばいいじゃん。

384:nobodyさん
05/07/26 12:18:15
>>382
CでMySQLへの問い合わせってどうやるの?
出来るなら今度やってみよ

385:nobodyさん
05/07/26 15:24:03
>>384
MySQL純正の接続ライブラリを利用するなら、
それをラップしてる他の言語で慣れてる人ならアホ程簡単。

386:nobodyさん
05/07/26 20:27:09
>>384
このへんだろうね。
URLリンク(www.softagency.co.jp)
URLリンク(dev.mysql.com)

私もCで接続したこと無いけど。

387:nobodyさん
05/07/27 15:50:58
>Cで接続

(;´Д`)ハァハァ

388:nobodyさん
05/07/28 07:20:11
ボキもSegmentation faultで泣かされますた

389:nobodyさん
05/08/25 07:40:55 URNXAJj0
以下のプログラムが思惑通りの挙動を示してくれません。
C言語でのCGIでは、forkは使えないのでしょうか?


#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

int main(void)
{
pid_t pid;
int status;
printf("Content-type: text/html\n\n");
printf("<html>\n");
printf("<head>\n");
printf("<title>test</title>\n");
printf("</head>\n");
printf("<body>\n");
pid = fork();
if(pid == 0){
printf("child<br>\n");
}
else{
wait(&status);
printf("parent<br>\n");
}
return 0;
}


390:nobodyさん
05/08/25 07:43:44 URNXAJj0
思惑とは、CGI実行時のHTMLソースで、

<html>
<head>
<title>show sFlow statistics</title>
</head>
<body>
child<br>
parent<br>

と、なってほしいのに、実際実行すると、

<html>
<head>
<title>show sFlow statistics</title>
</head>
<body>
child<br>
Content-type: text/html

<html>
<head>
<title>show sFlow statistics</title>
</head>
<body>
parent<br>

と、なってしまっております。

391:nobodyさん
05/08/25 08:19:05
stdioのバッファリング

392:nobodyさん
05/08/25 13:08:38 URNXAJj0
>>391
なるほど!
ありがとうございます。
fflushで、解決いたしました。


393:nobodyさん
05/08/26 20:14:39 Tl6OQEOB
最近C/C++CGIって廃れてるよな…

394:nobodyさん
05/08/26 20:16:53
あえて言おう。

廃 れ て な い 時 が あ っ た の か ?

395:nobodyさん
05/08/26 22:30:48 phIbl7Mf
■■■■■■■■■■■■■■■■■■■■■■
VIPの馬鹿大学生が市役所に内定!「俺は神」「彼女二人いる」などDQN発言全開。
その後、どの市役所か特定されたような書き込みがあり、本人逃亡!!w


地元市役所に内定した俺様は神!
スレリンク(news4vip板)l50


その後、公務員板にも、本人を特定するためのスレが立つww


【市役所合格】こいつ誰だかわかる?
スレリンク(koumu板)l50


調子に乗った馬鹿VIPPERの哀れな運命、見るだけでも見に来ない?w
■■■■■■■■■■■■■■■■■■■■■■




396:nobodyさん
05/09/03 14:14:39
>>393
やっぱライブラリ不足が原因だろう。
cgiccってでかい割にほとんどなんも出来ないし

397:nobodyさん
05/09/22 00:50:59 Lo9GY17f
2chのCGIはCで作られている。
証拠

スレリンク(tech板)

398:nobodyさん
05/09/22 01:33:37
わけあって初めてC++でCGI組んでみた(普段はPHPとか)
複雑な構造のデータを処理する場合とか、やっぱり速いね。

399:nobodyさん
05/09/22 07:44:47
>>397
bbs.cgiはPerlだよ。mod_perlとかfastcgiとか検討されたけど今はSpeedyCGI使ってる。
read.cgiは2ちゃん閉鎖の危機のときにCのソースが公開されてgzip圧縮が追加された。

400:nobodyさん
05/09/22 13:25:27
Web に向いていないというのはあるけど,Web を趣味でやっている人間の技術
レベルが低いというのも原因の一つでは?

# 前に read.cgi のソース見て、そのあまりの汚さに絶句したことあり

401:nobodyさん
05/09/22 16:48:47
はいはいすごすすごす

402:nobodyさん
05/09/22 16:50:45 WZseHGJ/
ついでにage

403:nobodyさん
05/09/22 17:33:25
1つのバイナリで使えるOSが限られるしね。
どうしてもインタプリタ型になってしまう罠。

404:nobodyさん
05/09/23 00:29:42
>>400
2002年ぐらいに一度見たのは、確かにアレだったけど、
その後にちらっと見たのは、新しく書き下ろされたように結構綺麗だった。
今はどうなってるんだろう。

405:nobodyさん
05/09/23 14:20:20
まだソースは転がってるのか!?

406:nobodyさん
05/09/23 15:38:07
今のはもう無理だと思うけど、
古いのは、ネットのどっかに転がってるかも。

407:nobodyさん
05/09/23 16:23:56
ここになんか沢山出てる
URLリンク(66.102.7.104)

408:nobodyさん
05/09/23 17:29:18
URLリンク(sunos.saita.ma)

409:nobodyさん
05/09/27 19:53:24
読みにくい…

410:javaさん
05/10/06 01:36:36 9/nHwpYz
CGIではなくてJavaでいうServletコンテナのようなものとVelocityのようなテンプレートエンジンを探しています
ご存知ないですか?


411:nobodyさん
05/11/20 17:08:19 Va/OuDM7
下がりすぎ

412:nobodyさん
05/11/21 02:40:39 /C8jg8zb
C言語のプログラム作成はどこですか?

413:nobodyさん
05/11/21 02:50:55
>>412
日本語がわからんが単にC言語のこと聞きたいならプログラム板

414:nobodyさん
05/11/21 21:22:28
C言語でCGIを動かす利点は何ですか?

415:nobodyさん
05/11/21 21:45:27
>>414
利点:既にコンパイルされてるから実行が早い。
欠点:一から作るのは死ぬほど面倒。

416:nobodyさん
05/11/26 02:09:45
c++ならそんな面倒でもない

417:nobodyさん
05/11/26 12:19:56 lGwtghir
今日からC始めるぞage

418:nobodyさん
05/11/28 21:19:30
挫折した

419:nobodyさん
05/11/29 07:09:03
はやっ

420:nobodyさん
05/12/13 02:50:45 0HjM7Fv9
windowsでのcgiの扱いの事なのですが、C言語で.作った.exeの拡張子を.cgiに変えると途端に上手く動作しなくなります。
win上ではcgiの拡張子は.exe一択になってしまうのでしょうか?

自分だけアドレスがhttp://~/cgibin/testing.exeになるのが恥ずかしいんですけど。。


421:nobodyさん
05/12/13 03:28:57
>>420
httpdに何使ってるのか知らんがハンドラ変えればいいだけの話じゃないのか

422:nobodyさん
05/12/13 21:01:21
普通 .cgi でもうまく動作するはずだけど……
というかネゴシエートすれ。 .exe も .cgi も恥ずかしいことに代わりはないから。

423:nobodyさん
05/12/13 22:33:44
.pdfとかにすれば良い。


424:420
05/12/14 19:01:11
>>421
>>422
>>423
URLの変換にも色々あるようで、参考になりました
レス有難うございました

425:nobodyさん
05/12/14 21:45:05
カウンタ作るのも一苦労ですたいorz

426:nobodyさん
05/12/24 00:54:12
ファイルのアップロード処理で下記の内容を参考にしているのですが
どなたかご存知でしたら、お教え下さい。

URLリンク(www-cms.phys.s.u-tokyo.ac.jp)

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



427:nobodyさん
05/12/27 16:08:10
>>426
画像なんかはバイナリのまま送られてくるね。
一応rfc2388,rfc2046を参照しておくといいかも。

428:nobodyさん
06/01/13 16:47:51 sdM07NCL
あけましておめでとうございます。

429:nobodyさん
06/01/13 22:23:10 itKm2IBl
ここにもオススメCGIが載ってますよ!

URLリンク(my-hero.versus.jp)

430:nobodyさん
06/03/19 09:20:21
この板には人がいないようですが...
C++でサーブレットコンテナ作ってみました。
まだまだ、おもちゃのみたいなものですが...
URLリンク(www.j2cc.org)

431:430
06/03/19 23:54:56
私用でageすいません。
どこに晒せば良いかもわからずです。(ならば晒すなと言わないで)
板違いorスレ違いであれば良い場所教えて下さい。

432:nobodyさん
06/03/19 23:59:32
ム板の方が盛り上がるかも。
ム板は特定スレしか見てないから、分からないけど…。

433:430
06/03/20 01:18:15
ムですか...了解です。
明日にでもム板にマルチポストで叩かれに言ってみます。

434:nobodyさん
06/04/13 19:42:23
保守

435:http:// 202-71-90-222.ap-w01.canvas.ne.jp.2ch.net/
06/04/13 23:31:32
guest guest

436:nobodyさん
06/04/18 17:41:56 6Kyc62WF
板違いと言われたのでこちらでも質問させてください。

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

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

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

正しいか間違っているか、また間違っているならば後学の為にも正しい処理の概要を
教えて頂ければ幸いです。
言語はC言語、サーバーはRedHatです。よろしくお願いします。

437:nobodyさん
06/04/19 00:35:56
>>436
間違ってる。CGIへの入力はGETまたはPOSTしか無い。
つかCGIをかなり大幅に勘違いしてるようだからちゃんと勉強してからおいで。

438:nobodyさん
06/04/19 00:44:20
CGIに関しては>>437の通りなんだけど、

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

http経由じゃなくてシェル実行でもscanfが効かないなら
何か根本的なところが間違ってるんじゃないか?

439:nobodyさん
06/04/30 02:49:16
【質問】
 URLリンク(ysserve.int-univ.com)
↑のページの【必須CAI課題】のどれかをクリックして適当に学生の番号入力するとオンラインのコンパイラに飛べますが、
このようなC言語のオンラインコンパイラを自分のHPに設置したいのですがどうしたらいいのでしょうか?

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


(さらにこのオンラインコンパイラだとscanf関数等数値のキーボ-ド入力が出来ないので、余裕があれば改善したいです。HTMLだけじゃ無理そうですが・・)

440:nobodyさん
06/04/30 03:33:14
>>439
何か恐ろしいレベルで勘違いしてそうだからあらかじめ言っておくが、
オンラインコンパイラなんて代物は存在しない。

とりあえずCGIというものについてちゃんと勉強してから来なさい。
ちなみにホームページビルダーでは何も出来ない。以上。

441:nobodyさん
06/04/30 03:36:11
>>439
つか本当にC言語使えるのか?
gccの使い方知らん上にインタプリタとコンパイラの区別もついてないように見えるが

442:nobodyさん
06/05/01 00:57:00
C,C++プログラミングスレッドで、反応なかったんで、こっちで聞いてみます。
linux(RedHat4)上のCのcgiのプログラムなんですが、コンパイルしてコマンドラインから実行すると動くんですが、
ブラウザ経由で実行すると、共有ライブラリが無いよ、のエラーになります。
LD_LIBLARY_PATHとか、httpd.confのSetEnvとか、ldconfigとか試しましたが、
現象変わらずです。
ldd というコマンドが有るとわかったので、コンパイルした実行形式をlddしてみると、
問題ないのですが、cgi-binにコピーしてlddすると、無いよと言われる共有ライブラリが、not found
になります。
これ、ナニが問題なのでしょうか?

443:nobodyさん
06/05/01 01:12:42
>>442
コンパイルしたディレクトリにライブラリがあるんじゃないの?

444:442
06/05/01 08:59:47
>>443

ライブラリというのは、OracleのOCIなんですが、そこは確認しています。
ライブラリ自体と、ライブラリのあるところのパーミッションも変えてみましたが、
現象変わらずでした。
ちなみに、>>442 では、LD_LIBRARY_PATHのスペル間違ってますが、
これは書き込みミスです。

445:nobodyさん
06/05/01 12:51:31
>>442
共有ライブラリの参照先が相対パスになっているとか?
lddの結果を見せてもらえるとわかるかも。

446:442
06/05/01 13:59:54
>>445
絶対パスで表示されています。

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

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

>>443さん、>>445さん ありがとうございました。


447:nobodyさん
06/06/04 14:30:46
なんか簡単に使えるフレームワークとかライブラリが有ればいいのに。

ejbとmod_jkみたいなのを希望。

448:nobodyさん
06/06/04 14:38:35
そう思ったら、自分で作って公開することをお勧めする。

449:nobodyさん
06/06/08 20:51:42
みんな思いつきそうだけど手は動いてないね。

450:nobodyさん
06/08/07 15:01:57 f+NIkUuU
C/C++界隈には凄い人いっぱいいそうなのになんでだろ?
啓蒙活動には興味ないのかな。
まあ、いまどきC/C++でCGIやるような人が
ポピュラーでキャッチーなコードを書いてるわけないか。
自分最適化バリバリっぽいな。

451:nobodyさん
06/08/07 15:27:49
まあ作れるスキルあったら売り物にするからね。
時間もかけてるしビジネスノウハウもつぎ込んでるから無料で公開というのは無い。

452:nobodyさん
06/08/07 21:24:16
サーバーサイドはJavaのserverVMの方が速くて安全でライブラリが揃ってるから、
C,C++で作る意味がない。

453:nobodyさん
06/08/09 10:03:29
CよりJavaの方が速いってありうる?

454:nobodyさん
06/08/09 19:52:36
javaのvmのほうが速いってことは無いよ。
常にCで生成した実行バイナリのほうが桁違いに速い。

455:nobodyさん
06/08/09 22:43:45
>>454
だよね。>>452はJava厨か。

456:nobodyさん
06/08/09 22:57:54
速いcで作りたいけど一から作るのマンドクセ。
結局はフレームワークが揃ってるjavaに流れるって罠?

457:nobodyさん
06/08/11 23:13:47
javaは速さがどうとか言うよりもクロスプラットフォームという点が大きいと思う。
まぁ、今更Cを学ぼうという人間もなかなかいないしね。

そのせいか稀に素っ頓狂なjavaソースを目にすることがあるが、これも愛嬌。

458:nobodyさん
06/08/12 17:50:30
javaじゃ遅くてハード代がかかるのでCにするって、身の回りでは多いけどなあ。
特に事業とかコストを考えるとJavaでは苦しくなることが多い。

459:nobodyさん
06/08/12 22:32:47
>>458
javaは動き出しちゃえば(そこそこ)速いんだよね。メモリバカ食いするけど。
今時のハードだと安くてもメモリさえ積めば充分だし。

プラットフォームが確定してればCの方がパフォーマンス良いけど、WebProgって
求められる機能がアホみたいにコロコロ変わるから、Cは向いてないよなぁ。

460:nobodyさん
06/08/14 01:51:31
こんな時代だからこそ C+++CGI なんだと思った

461:nobodyさん
06/08/14 13:13:13
Cばかりが速いとは限らない。
JITコンパイラの最適化能力と、GCの性能は一気に上がった。Javaも実際は一部JITで機械語にコンパイルしたり(いまだに完全インタプリタ言語だと思ってる人が数レス前にも)、メモリを予約するよう工夫されている。言語だけて決め付けるのは古い。
(しかしASP.NETの方がJavaわずかに全体的に速い。純MSの一部アセンブラ言語だから当然か。Win鯖限定)

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

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

チラシの裏
某f〇2のアク解の鯖はOSからhttpdまで完全C++の自作らしい。どれだけさばけるのか気になる。

462:nobodyさん
06/08/15 01:34:31
完全スクラッチを謳う鯖って大概NetBSDのカスタマイズだったりするからなぁ・・・

463:nobodyさん
06/08/15 11:25:18
求められる機能がアホみたいにコロコロ変わるって仕様が十分に練れてないだけじゃん。
普通はハードは減価償却終わるまで替えないから、Cバイナリでも十分。

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

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

完全スクラッチである必要は無いと思うが。
組み込み系なのか?

464:nobodyさん
06/08/15 13:01:56
C言語の依頼ならたまに来るけども(JavaとPHPがほとんどだが)、C++はほとんどない。なんでだろ?

465:nobodyさん
06/08/15 13:45:40
>>463
お前さん、流れ読めてないだろ

466:nobodyさん
06/08/17 00:55:09
そもそもC++である必要が無い。
マカが絶賛するObjCも必要性無いからマカ以外使われないし。

Javaの客ならサンの高い鯖でも買ってくれで対応出来るだろうけど、phpだと下手にアクセス数増えると大変だよね。
小規模サイトのうちは平和だけど。Javaに移ってくれでハードごと交換してもらえるほど余裕無い場合がほとんどだし。

467:nobodyさん
06/08/18 00:58:54
いつまでも C/C++ なんていってるから散漫になってだめなんだよ。
強い C++ 文化を作らなきゃ。

468:nobodyさん
06/08/18 01:05:04
いやもう正直いまさらつーか

469:nobodyさん
06/08/18 13:19:43
現状ではC++ほどトータルバランスに優れる言語はないと思う。
でもC++の言語ポテンシャルに気づくまでには情報の壁があるよね。
URLデコード処理なんかistringstream使えば死ぬほど単純なのに。

C++に必要なのはC視点から脱却した体系的な解説サイトだな。

470:nobodyさん
06/08/19 05:10:13
C++に必要なのは移植性
Cと違ってコンパイラによって対応度が全然違うから、
g++で通るのに商用UNIXのコンパイラでコンパイルが通らなかったりしてうんこ。

471:nobodyさん
06/08/19 16:03:29 vMxG7enI
質問です。
C++でCGIを書こうと思ってC++勉強してるんですが、
POST methodで受信した文字列をcinでもらったり、
出力をcoutで出したりするのはセキュリティの観点等から見て
適切でしょうか?
Cだとfgetsとかputs使ってたんで、何をやってるかよくわからない
cinとかcoutはちょっと怖いイメージが…

472:k ◆WFGp1NZuiw
06/08/19 16:36:07
>>471
せっかく C++ 使うのなら,Apache のモジュールにした方がいいよ.

473:nobodyさん
06/08/19 17:13:35
怖いならソースを読むといいと思うよ

474:471
06/08/19 21:38:55
>>472
標準入出力をモジュールを介して行うということでしょうか?

>>473
そうですね。もう少しC++に慣れたら読んでみようと思います。

475:nobodyさん
06/08/25 23:55:06
そもそもアパッチも自分で作ったほうがいいよ。
アパッチって変なことやり過ぎで変になってるし。mod_rewhiteのところとか。

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

C++なんてイラネ。ANSI Cこそ最強ですよ。

476:nobodyさん
06/08/26 12:54:55
apacheを自分で作る??
httpdじゃなくて?

477:nobodyさん
06/08/26 20:24:16
rewrite のスペルもまともに書けない人間はプログラミング以前に、
中学校レベルの英語から人生やり直した方がいいと思うゾ。

478:nobodyさん
06/09/08 22:30:29 zv3xWmqW
みんな HTML 出力クラスどう設計してる?

479:nobodyさん
06/09/08 23:24:55
どうって言われてもな。
オブジェクトに要素渡して最後にoutputさせるだけだが。

480:nobodyさん
06/09/09 01:07:22 BE:106404825-2BP(200)
リホワイトワロタww

481:nobodyさん
06/09/09 04:11:02
>>478
俺はPerlのHTML::TemplateやPHPのSmartyみたいなヤツで出力してる。
C/C++でソース中でレイアウトいじるのはどうなのよ?
いちいちコンパイルしなきゃならんのはめんどくさくね?



482:nobodyさん
06/09/13 04:35:05
でもソース中に埋め込んでないと遅いのでCにした意味がなくなるけどな。
コンパイル面倒ならphpとかperlあたりで作った方が楽だし。

483:nobodyさん
06/09/15 01:24:49
テンプレートなんざオンザメモリですよ

484:nobodyさん
06/09/15 10:27:09
リクエストの度に読み込んでたら遅いしなあ。

485:nobodyさん
06/09/15 11:00:49
やっぱC/C++な人たちは速度に厳しいのかな。
俺はテンプレートくらいって考えちゃうよ。
でもそこまで考えるとやっぱりCGIって枠を抜けたくなってくる。
あーだからみんなCでCGI書かないのか。


486:nobodyさん
06/09/15 16:17:35
80番つかんで自前でリクエスト処理が早いよね。
フロントエンドにアパッチ置いて、ヲレモジュールで繋いだ方が便利だけど。
javaのj2eeのC的アプローチだが。

487:nobodyさん
06/10/03 22:36:48
printfでlocationを実行させようとしたんですが、単にlocation文が出力されるだけなんですが・・・
制御文と認識させるためには、お呪い前処理が必要なんでしょうか?

488:nobodyさん
06/10/03 23:06:19
- locationを実行って何
- 「単に出力されるだけ」ってどこに何が出るの
- 制御文って何
- お呪い前処理って何

総じて意味不明
何をやったのかも何をやりたいのかも伝わってこない

489:nobodyさん
06/10/04 00:00:11
CGIスレだし、Locationでリダイレクトさせたかったんじゃね?
でも別の場所でprintfしてる Content-type: text/html が残ってるせいで文字が表示されてるだけとか

490:nobodyさん
06/10/04 00:17:56
まあつまりStatus:302ってこったろうな。
302時にhtmlを返すこと自体は普通だし。確か。

491:nobodyさん
06/10/13 20:22:15
URLリンク(labs.preferred.jp)

492:k ◆WFGp1NZuiw
06/10/22 15:08:53 EW4822UW
>>491
URLリンク(barracudaserver.com) の再発明な予感.
(URLリンク(0xcc.net))

べつに再発明が悪いとは思わないけど,どこが違うのか明示してくれるとうれしいかも.

493:nobodyさん
06/10/28 00:02:45
むしろ調べて報告してくれ。
来週までの宿題ってことにする。

再発明でも、いいよ。
まともに業務に使えそうな機能が欲しい。

494:nobodyさん
06/11/09 17:10:13
CGIの質問はここですればいいのですか??

495:nobodyさん
06/11/09 22:46:46
CかC++で作られたものなら。
それ以外のphpとかperlとかjavaとかなら他へ。

496:nobodyさん
06/11/09 23:34:21
URLリンク(www.gigigi.net)のアプロダは
CかC++でつくられてますかね??

497:nobodyさん
06/11/10 00:30:34
そのurlの最後の三文字を声に出して読んでください

498:nobodyさん
06/11/11 14:49:10
拡張子でファイルの種類を判別できるなんて、あなたは超能力者ですか?

499:nobodyさん
06/11/22 16:23:47
権利関係のとこ見れば良いじゃないんか?
あれはただ表示してるだけですか

500:nobodyさん
06/11/27 19:10:34
そういや拡張子の無いCGIは
.htaccessで
<Files test-cgi>
ForceType cgi-script
</Files>
ってやっているけど、これ以外の方法で設定ある?

501:nobodyさん
06/12/04 17:45:41
mod_rewrite

502:nobodyさん
06/12/09 12:15:32 NH9SQeUM
>>491
既にあるものを新しく作ったかのように発表するのは、
プログラマとしてダサイ、
研究者として最低、
会社としては?

それとは別にpreferredのコードがazaracと同等だとしたらダメすぎだろ。
コアは良いのにもったいない

503:nobodyさん
06/12/09 13:05:08
既にあるものがベストでない場合も有る訳だし。

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

コアは再利用するけど、もっと使いやすくするのがオープンソースの醍醐味。

504:nobodyさん
06/12/10 00:02:51
>>503
>新しく作った方が良ければ評価はされると思う。
そりゃそうだけどそれを示してないよね。そんな論文どこにだしてもrejectされるよ。
ちょっと>>492にあるやつ見た感じだと示せそうもなさそうだけど。

あえて言えば日本語ドキュメントがあることだけど、それじゃぁね。
まぁ今後に期待。


505:nobodyさん
06/12/11 23:50:20
どこのスレで聞いていいのかわかんないので、ここで聞きます。

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

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

キリバン機能はあっても無くてもヨシの方向で。
また、ここじゃなくてこっちのスレで聞けやー
っていうのがありましたらそのスレ教えてください。

506:nobodyさん
06/12/14 00:13:39
誰かエンドレスバトルのスクリプトうpしてくれる神はいませんか?

507:nobodyさん
06/12/16 19:00:54 nIpz82eR
あげ

508:nobodyさん
06/12/17 19:00:36
>>505
失礼な方ですね。

509:nobodyさん
07/01/16 18:49:14 xXzalZaX
VCで作ったCGIで、C:\WINDOWS直下に置いてあるINIファイルの設定を取得しようとすると取ってこれないのという現象が発生します
他のディレクトリを指定すると正常に動作するのですが、アクセス権限の設定とか必要なのでしょうか?

510:nobodyさん
07/01/16 21:04:10
>アクセス権限の設定とか

わかってて何故確かめない

511:509
07/01/17 07:25:17
IIS、システムフォルダとも確認しました
他に確認する所ありましたっけ?
別のサーバーはちゃんと動いてるんだけどなー

512:nobodyさん
07/01/17 10:04:45
>>509
エラーコードやらメッセージやら確認した?


513:nobodyさん
07/02/07 17:14:45
Cから、INIファイル自体読めるかどうかの確認ぐらいしたら?

オラクルとのやり取りはProCってのがあるみたいだけど、HTML生成と、HTTP周りとGET/POSTやセッション管理のライブラリ欲しい。orz

514:nobodyさん
07/02/13 21:17:14 +34QrCfo
C言語用のCGIライブラリで有名なものは何ですか?
クエリやHTTPヘッダを解析する程度の、簡単なもので構わないのですが…

515:nobodyさん
07/02/24 19:11:47 eSgsNpz0
質問させてください。

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

CでCGIを作るのとPerlで作るのでは、どのくらい作業量が違うのでしょうか?
また、Perlでないと作るのが難しい処理がある、といったことはあるのでしょうか?

516:515
07/02/24 21:05:09 eSgsNpz0
一応付け加えさせて頂くと
C言語は基礎的なことは一通り理解しています。

といっても、まだまだ腕に自身がなく
今後仕事で使うことになるので、あえてPerlではなく
C言語で作りたいと思いました。

517:515
07/02/24 21:08:08 eSgsNpz0
一応付け加えさせて頂くと
C言語は基礎的なことは一通り理解しています。

といっても、まだまだ腕に自身がなく
今後仕事で使うことになるので、あえてPerlではなく
C言語で作りたいと思いました。

518:515
07/02/24 21:14:11
連続投稿して申し訳ござません。

519:nobodyさん
07/02/25 13:19:25
>>515
PerlはもともとCGI用に作られた言語じゃなくて、文字列処理に強いから適してたってだけ。
正規表現系のライブラリさえ用意できればCでもさほど手間は変わらない。

っていうか本当にCを理解してればこんな質問自体無意味だと気づきそうなもんだが。

520:515
07/02/26 22:08:57
>>519
ありがとうございます。
文字列処理に強いからCGIで使いやすいということだったのですね。
Cでがんばってみようと思います。

521:nobodyさん
07/03/28 17:29:46
たまには保守

522:nobodyさん
07/03/29 02:57:24
初心者ながらも悪戦苦闘しWEB作成してます。
掲示板を動かすのはCGIによるものだというのがわかるのですがどうも掲示板の設置方法がわかりません。
掲示板はCGIパール言語ではじめから組み込まれたものなのですか?それともHTMLである程度(HPのヘッダー部分や上のロゴとか)
作ってから掲示板としてはじめたい行からCGIでプログラムを書き始めるものなのでしょうか?
それとも掲示板のページは最初からCGIでヘッダーやロゴの部分もCGIパール言語で書き始める、とういうものなのですか?
このばあい、ロゴとかを前のHPから来るレイアウトでCGIにできる方法など簡単に図示、説明してあるWEBなどないでしょうか?
ど素人の質問ですがどなたかご回答いただけましたら幸いにございます。

523:nobodyさん
07/03/29 23:03:39
>>522
そのレベルだと何説明されても理解できないだろうから
自分で設置しようとか思わずにまずレンタルの掲示板
借りたほうがいいと思うよ

あとスレ違い

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

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

で、ここは C/C++ のスレです

525:nobodyさん
07/04/21 13:51:12 DYrM8nyl
>>496
画面下に
ずるぽんあぷろだ + レッツ PHP!
となっているから
phpじゃない?

526:496
07/04/23 20:14:06
>>525
サンクス!

527:496
07/04/26 18:01:43
ところで、デバッグって
みなさんどうやってます?

528:nobodyさん
07/04/27 00:43:37
別に。ふつーにやってる。

529:496
07/04/27 18:44:00
そうですか。
どうも。

530:496
07/04/28 11:27:25
おはようございます。
ここって人いないですね。


531:496
07/04/28 20:44:43
Cで作ったCGIが正常に終了しないで
プロセスとして残ってしまったら
どうやって終了させればいいんですか?


532:nobodyさん
07/04/28 23:20:22
>>496
うぜーから
消えろ!

533:nobodyさん
07/04/29 03:13:16
>>531
reboot

534:nobodyさん
07/05/02 01:28:56
cgiだとhttpdから呼ばれてるから再起動しか無いね。

535:nobodyさん
07/05/07 00:58:27 WXo0gSV8
独学でC++を使ってcgiを学んでます。

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

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

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

536:535
07/05/07 01:05:44 WXo0gSV8
↓ソース(viewcart.cpp)です:

URLリンク(kansai2channeler.hp.infoseek.co.jp)

55. viewcart.cpp  C/C++ CGIスレッド - 2007/05/07(Mon) 01:04 No.3942
3942.txt お借りします


537:nobodyさん
07/05/07 04:41:51
いや、ていうかカートの中身をcookieに持つこと自体がまずありえない
まずセッションの使い方を学ぶべし

538:535
07/05/07 05:38:49 WXo0gSV8
>>537
いや、別に実用するわけじゃないんで
「やっつけ」でカートの中身をcookieに持ってていいんですけど。
(client.txtなんてパスワード暗号化なしですしw)

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

さっきから検索してるけど全然そういうサイトが見つかりません…。

539:535
07/05/07 05:40:36 WXo0gSV8
ちなみにセッション管理はPHPで少し勉強しました。

この本の他の問題は全部解いたんですよ。
あとはこれだけなんでどうしても終わらせたいんです。

540:nobodyさん
07/05/07 08:48:04
削除つーか上書きすればいいだけの話なんだが。
あと前提があるならちゃんと最初に書こうな。お互い二度手間だ。

541:nobodyさん
07/05/07 08:55:11
「cookie 削除」でググれば速攻で方法見つかるやん

542:535
07/05/09 22:54:06 AhyOmpI4
>>540
一つの問題にしては時間がかかりすぎたんでもう諦めました。
本に載ってないことをやらそうとするのが悪い。w
ご協力ありがとうございました。

543:nobodyさん
07/05/09 22:56:01
ゆとり教育の効果は素晴らしいですね(棒読み)

544:535
07/05/09 22:58:36 AhyOmpI4
>>543
速攻ですな。w
いやね、キーを検索して空白やらマーカーやらで上書きまではやっても
削除にまでは至らなかったんですわ。

ちなみに自分は30歳超えてます。wwwwwwwwww

545:nobodyさん
07/05/09 23:30:29
君がやってるのはプログラミングじゃなくてただのテキストコピー作業だ

546:535
07/05/09 23:40:33 AhyOmpI4
>>545
その通り!異論なし!w

ま、人間何事もコピーから始まるんですよ。
自分は終わりもコピーですが。

547:http://softbank219023243191.bbtec.net.2ch.net/
07/05/10 06:57:35
guest guest

548:nobodyさん
07/05/10 23:09:33 AA4DnND/
君たち、ちょっと背伸びしてないか?


549:nobodyさん
07/05/11 18:17:50
削除ってリンクに削除したクッキのリンクを貼ればおk。



550:nobodyさん
07/06/07 22:32:05 GrrIKIFJ
EUCからUTF-8などに変換できる関数が掲載されているサイト教えて

551:nobodyさん
07/06/08 00:26:44 WTsEXDzF
iconv

552:nobodyさん
07/06/08 03:18:28
babel

553:nobodyさん
07/06/08 20:05:57
>>551
サンクス。

554:nobodyさん
07/06/18 07:16:24
初めてのCGIをCで作るってのは無茶だよねー。
PerlかPHPかで練習してからじゃないと、
ちょっとした掲示板作るのにすら1ヶ月以上はかかるんじゃないかな。

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

そしてCで書く人は、本格的に仕事で書いてる人が多いから>>451になり、
このスレも伸びない。

555:nobodyさん
07/06/19 21:49:28
>>554
Cで書いたって、CGIとして使うなら、一般的にmod_perl使うよりも遅くなる。
速さを追求するためにCを使うんだったら、apacheのmodule書いて、自分で
リクエストを捌くに限る。

C/CGIって、余程特殊な場合(Cしか出来ないとか、ソースを渡したくないとか)
を除いて、メリット無いのよね。

556:nobodyさん
07/06/20 00:49:44
>>555
2chのような掲示板の場合は確かにそうだけど、
いろいろ複雑な処理をする大規模サイトになってくると、結局C最強。

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

最近はWebアプリにいろんなことをさせようとしてるから、
ますますWebアプリの処理速度が重要になってくると思うな。

557:nobodyさん
07/06/20 01:01:50
単にバグってたんじゃないのかw
Perlで毎日400ファイル更新してるけど2秒ぐらいだぞ @Pentium4

558:nobodyさん
07/06/20 01:07:54
>>557
複雑なサイトだから、あちこちで多重ループをかける必要があったり、
レコード数がかなり多かったり。

できるだけ多重ループにならないように工夫もしたんだが、複雑すぎて無理…。

559:nobodyさん
07/06/20 02:22:17
組み方が下手なだけでした。本当にありがとうございました。

560:nobodyさん
07/06/20 04:30:38
>>559
本当に複雑なシステムっていうのを作ったことがないでしょ?
官庁とかから一度受けてみると良いよ。
意味不明な仕様にこだわって、システムが無駄に複雑になる。

561:nobodyさん
07/06/20 06:23:39
えーと、perlは確かに速くはないけど
普通に処理した場合、Cと比較して数倍程度の差しか出ないでしょ。
もちろん、これはそれなりに時間のかかる処理をした場合。
(インタプリタの起動時間と内部コンパイルの時間があるから)

で、下手な奴が作ると、無駄な処理をループ内でやってたり
(不要な初期化とか正規表現のコンパイルとか)して時間がかかる。
Cならコンパイラが最適化してくれたりする部分でも。

562:nobodyさん
07/06/20 06:27:37
あと、普通は(DBとの交信等も含め)I/Oがそれなりの比重を占めるから、もっと差はつまる。

だけど喜んで連想配列をループ内で初期化しまくったり
インデックスで参照できるのに何故かリニアに探索してたり。

563:nobodyさん
07/06/20 07:09:28
>>561-562
確かにCでは最適化したけど、Perlはそこまで最適化したわけじゃないから、
かなりCに有利な比較ではある。

しかしCで作ってると、ウェブサーバにはほとんど負荷がいかないが、
その代わりDBがボトルネックになる。
Javaのレスポンス/オブジェクトキャッシュのように、
CでもDBの負荷を減らせるうまい方法はないものか・・・。

564:nobodyさん
07/06/20 07:27:51
まあその手のキャッシュを使いたい時は、まずCGIってのがネックになるね。
独立したプロセスだから、交信や共有は面倒。

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

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

まあこのやり方は
実際にはapacheにtomcatを組み合わせるのと本質的な差はないけどね。

565:nobodyさん
07/06/20 10:18:48
ところで皆さんコンパイラは何使ってますか?

566:nobodyさん
07/06/20 13:55:22
>>565
普通にgcc

567:nobodyさん
07/06/20 22:08:35
>>560
「これは○○県警さんでやった方法なんですが」
「では、それとはちょっと変えてください」


いや、別に変えなくても良いものは
無理して変えんでも良いがな...orz

568:nobodyさん
07/07/02 07:03:13
ソースを渡したくないって、飯を食うのには重要だけどな。
毎回ソース渡してたら、いつかは喰えなくなる。

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

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

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

古い所のシステムだと、歴史的経緯で非効率な処理を求められることはよくある。
開発費高めでも払ってくれるので好きだけど。他と同じ単価なら受けないけどな。

569:nobodyさん
07/07/04 00:35:14
CからSQL鯖弄るのって、ODBCぐらいしかない?
Cには、JDBCみたいなのは無いよね?

570:nobodyさん
07/07/04 02:01:41
>>569
ODBCとか使わなくても、Cならネイティブドライバ使えばいいのでは…。
他のDBへの移植性を上げたいのならODBCを使うしかないかな。

571:nobodyさん
07/07/27 15:06:25 HlWLP/Z4
CGI から,GetModuleFileName を呼び出すと、ドライブ名の前に"\\?\"という文字が付きますが、
これって、なんなのでしょうか?、教えてください。

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



572:nobodyさん
07/07/27 20:49:30
そのPCそのものを表す。
PCローカルURIって言うとちと違うのかな?

573:571
07/07/28 08:51:56 QYOm8nEM
>>572
回答どうもです

が、エクスプローラで「\\?\共有名\ファイル名」とやっても「見つかりません」となります。
(「\\コンピュータ名\共有名\ファイル名」だとOK)

574:nobodyさん
07/07/31 00:21:17
>>564
共有メモリ使えばいいだけ。mod_uploaderのソース嫁

575:nobodyさん
07/07/31 01:21:12
キャッシュに共有メモリって・・・
別にいいけど

576:nobodyさん
07/07/31 01:39:34
何処に不満があるの?
worker MPM使って、dispatchはApacheに任せ、データはshm/mmapで共有ってのが現実的だと思うなぁ。

>これも、基本的にシングルプロセスのMPMは無いから
>全体で共有することも出来ないし、
これミスリーディングだとおもうな。データ共有するのにシングルプロセスである必要なんて全くないだけだし。

577:563
07/07/31 03:20:02
>>574,576
私もあれからいろいろ調べてみたら、
やはり共有メモリを使うって方法にたどり着いた。

ただしDBデータをキャッシュする場合、キャッシュの破棄タイミング、
新しいデータのキャッシュへの反映が難しい。
作成したページをキャッシュする場合も、やはり同じ問題が。

SQLサーバを使わない、もしくはSQLiteを使うとかすれば、
可能ではありそうだけど、それだとDBのクラスタリングが出来ないので意味がない。

PostgreSQLやMySQLのプラグインやトリガーという形で、
キャッシュ管理のプロセスに情報を伝える仕組みが要りそう。

さすがにこれだけの仕組みとなると、とても一人で作るのは無理そうだ。

578:nobodyさん
07/07/31 03:22:01
えーと、あなたのところではSHMMAXが、実装メモリに対して充分な値なわけですね。

例えば、1Gのメモリを積んでいてキャッシュ用途に大部分を使いたいと考えた場合
SHMMAXが数十M程度だとおおいに不満なのですけど。
あ、/proc/sys/kernel/shmmaxで充分な大きさに変更できるならば良いですがね。
それとも、細切れにブロックを確保して頑張ってやりくりしますか。

あと、shmではなくmmapを使う場合を含めて、当然排他機構が必要となるわけですが
たかがメモリの読み書き程度で重いといわれるプロセス間のロックはたまりませんね。
もちろん、プロセス間通信と比較すればずっと軽いでしょうが
ロック期間を短く(こまめにロック/アンロック)という、一般的に推奨される手法には向きませんな。
スピンロックで足りる用途だけならともかく。

579:nobodyさん
07/07/31 08:34:44
SHMMAXについてはおっしゃるとおり。

>たかがメモリの読み書き程度で重いといわれるプロセス間のロックはたまりませんね。
汎用のロックを使わなければ良いだけだと思う。
mod_uploaderがやってるように、共有メモリ領域に対してCPUのatomic命令を使うとか。

ロック期間が短い→CPUのatomic命令
ロック期間が長い→signal

で十分対処できるような。そもそもお金かけて高いサーバ使うならともかくその辺の安いPCでサービス提供するなら別にスレッド使わなくても十分なような。


複数プロセス使うのに必ずしも重い汎用のプロセス間ロックを使う必要なんてないし、なんかミスリーディングだとおもう。最初に結論ありきで論じてませんか?

580:nobodyさん
07/07/31 09:43:21
>>579
ほほー。

スレリンク(mysv板:397番)
システムコール使ってないし、こんなもんか

581:nobodyさん
07/08/03 23:31:03 LuhsKnBr
>>578
詳しいことは理解できないけど>>578の性格が悪いことだけは分かった。
もっと普通にかけるだろうに。

582:nobodyさん
07/08/05 18:32:24
>>578
おまえの頭がかたいことは良くわかった

583:nobodyさん
07/08/09 02:14:08
>>578のような人間とは仕事したく無いなぁ

584:nobodyさん
07/08/11 00:09:14
2chのread.cgiとかのソース発見!
URLリンク(www.gedoh.org)

585:nobodyさん
07/08/11 10:14:45
>>584
それちょっと古いやつね。
前ちょこっとソース読んだ限りでは、完全に2ch用に特化してるから、
汎用性もなにもあったもんじゃないし、ソースも読みにくい。

586:nobodyさん
07/08/19 21:44:36
CGIってPerlのことですよね?
Perlっていうのは言語だからC言語でCGIを作るというのは
C言語でPerl言語を作るということなんですか?????

587:nobodyさん
07/08/19 23:42:55
ぐぐれ

588:nobodyさん
07/09/06 17:50:36 VY4R4z3/
C言語で掲示板(簡単なもの)を作りたいのですが
入門書2冊読んだ程度でもできるでしょうか…?
ちなみにC言語以外の言語はやったことがなく
C言語歴も1ヶ月で大きなプログラムも作ったことがありません。

589:nobodyさん
07/09/06 17:51:48 VY4R4z3/
C言語で掲示板(簡単なもの)を作りたいのですが
入門書2冊読んだ程度でもできるでしょうか…?
ちなみにC言語以外の言語はやったことがなく
C言語歴も1ヶ月で大きなプログラムも作ったことがありません。

590:nobodyさん
07/09/06 18:18:03
CGIを書くには少なくとも文字列を自由にあやつる必要があるけれど、
Cで文字列が自由自在になるには初心者が一ヶ月では少し足りないような。

まぁでもやって出来ないこたぁないよ。うん。


591:nobodyさん
07/09/06 19:22:43 VY4R4z3/
お返事ありがとうございます。
自由自在…今持ってる本で文字列関係?でわかってないのは
str全般とcalloc、malloc、reallocぐらいなんですがここら辺を覚えれば結構違ってきますかね…?

592:nobodyさん
07/09/06 20:57:42
とりあえずHTMLを吐くところから始めてみればいいんじゃない?
POSTとか絡んでくると色々大変だけど

593:nobodyさん
07/09/07 03:00:06
私は数年のプログラム経験があったけど、
CGIに必要なライブラリを一通り作るだけで2週間かかったよ。
どこからかライブラリを拾ってこないと、全部一から作ってたら結構大変。

594:nobodyさん
07/09/07 06:49:22 NiQeHZNB
>>591
ここ見て頑張れ
URLリンク(www.boutell.com)


595:nobodyさん
07/09/08 17:40:25 vnaZ3dnt
>>592-593
そうですか・・・とりあえずまだ力不足だしそろそろ学校
も始まってたぶん作る暇もなくなると思うので今は
とりあえずもっと勉強してから作ろうと思います。
>>594
英語多すぎてわかりませんw
でもありがとうございます。出来るだけがんばって読んでみます。


596:nobodyさん
07/09/09 04:36:43
>>594
最低限のライブラリって感じだね。

自作のライブラリってどれくらい容量or行数ある?>All
私のはPHP並に機能揃えたから2.5MBぐらい。

597:nobodyさん
07/09/09 10:12:18
人生はどう手抜きで最大限の成果を得るかだろう

598:nobodyさん
07/09/09 12:29:09
>>596
ほとんどphpにwrapperしちゃってるから自分で書いた部分は1MBも無い

599:nobodyさん
07/09/09 12:50:20 2vrQ8w/W
>>596
馬鹿だろ。手動かすまえに頭動かさないやつは死ね。

600:nobodyさん
07/09/09 16:00:59
STLとBoost使えばなんとかなるんかねー

601:nobodyさん
07/09/09 18:28:43
>>597-599
手抜きするためにこれだけライブラリ揃えたんだけどね。

602:nobodyさん
07/09/09 23:55:25
そう、よかったねw

603:nobodyさん
07/09/10 01:02:01
そういう手抜きをしたきゃ最初からphpで書いた方が早いだろうに・・・

604:nobodyさん
07/09/10 04:09:10
>>603
自分でライブラリ書けば、自由が効く。

605:nobodyさん
07/09/10 21:42:08
そもそも何に不自由してるのサ

606:nobodyさん
07/09/11 12:54:32
自分で全部好きにしたい、というのはわからんではないけど、
デカいライブラリをメンテするのはそれはそれで大変な気がする。
バージョン管理とか面倒そう。

というわけで、自前の奴はPOST/GETとエスケープくらいしかない。
あと、なんかのBSDライクな奴からパクってきた文字列処理と基本データ構造もあるが。
CでCGIってそれほど頻繁に必要になるわけじゃないんで、これで十分。

2.5MBってソースのサイズかね? それともバイナリ?


607:nobodyさん
07/09/12 14:06:22 aBsU5Vcp
8桁のランダム文字列(特定文字A~Fのみ)
をCGI上にて表示させる方法が知りたいのですが

@chara = ('A','B','C','D','E','F');
for($i=0; $i<8; $i++)
{
    $numbera = $chara[int(rand($#chara+1))];
}

という表記を現在しています。
しかし、1文字しか表示されないのですが
8桁分ランダムに表示させるにはどのように表記したらよいでしょうか?



608:nobodyさん
07/09/12 18:07:22
>>607
perlはスレ違いだが・・・まぁいいや。

$numbera =
 ↓
$numbera .=


609:nobodyさん
07/09/13 09:49:44
>>608
やさしいねw

610:nobodyさん
07/09/14 08:33:15
>>606
> CでCGIってそれほど頻繁に必要になるわけじゃないんで、これで十分。

こっちはメインで使ってるから、メンテとかもさほど気にならない。

> 2.5MBってソースのサイズかね? それともバイナリ?

ソースのサイズ。
バイナリは150~500KBぐらい。

611:nobodyさん
07/09/14 11:17:14
コアとなるPOST,GET,HTTP Header,File uploadとかのCGI固有の入出力部分以外は
適宜外部ライブラリをリンクするのではだめなの?

PHP並の機能っていってもPHPがPHP並の機能をもっているのはPHPの中の人が
全部自分で書いたからじゃなく、たくさんの外部ライブラリとリンクしてるからなわけで。
それともフレームワーク的な機能がたくさんあるのかな?


612:nobodyさん
07/09/14 11:25:57
もう放っといてやれ

613:nobodyさん
07/09/14 12:14:06
>>611
フレームワーク的な機能が多いかな。
外部ライブラリを使いやすくするための中間層的なライブラリも多い。

614:nobodyさん
07/09/15 00:28:34
ぐだぐだいってないでコード公開すればいいんじゃね?

615:nobodyさん
07/09/18 17:36:28
>>571-572
URLリンク(msdn2.microsoft.com)
今更だけど、\\?\はパスの長さの制限をおよそ32000文字に拡張する接頭辞。

616:571
07/10/06 16:16:07
>>615
おー、ありがとう

617:nobodyさん
07/11/14 02:10:36
dat落ち防止

618:nobodyさん
07/11/16 00:44:52 vk2sEYR2
visual c++ 2005 expressで,c++でcgiプログラム作ってるんだけど、
Windows 2000のIISの環境でcgiからファイルをオープンしようとすると、オープンに失敗するんだが・・・
何でか誰かわかりますか?
Windows XPのIISの環境ではちゃんとオープンに成功します。

<環境詳細>

仮想ディレクトリ:Scripts

Inetpub/Scripts/cgi/cgi.exe (URLリンク(hostname))
Inetpub/wwwroot/form/form.htm (URLリンク(hostname))

form.htmからcgi.exeにPOST。
cgi.exeは、起動されると Inetpub/Scripts/cgi/file/ フォルダにファイルを
作ろうとするんだけど、WindowsXPだとOpen成功、Windows2000だとOpen失敗。

619:nobodyさん
07/11/16 12:49:38
IISのログを確認する
フォルダの書き込み権限を確認する

620:nobodyさん
07/11/16 13:18:09
google-ctemplate - Google Code
URLリンク(code.google.com)

621:nobodyさん
07/11/18 05:15:45
>>620
ClearSilverより速いのか?

622:nobodyさん
07/11/18 23:17:33
>>621
ソース見る限りClearSilverよりシンプルだから速そうだけど、機能が全然足りない予感。
まー、本格的に使うには、ClearSilverでも機能/汎用性/拡張性が足りなさそうなんだけどさ。

623:nobodyさん
07/11/23 16:15:53
で、本格的に使ってるおまいらはどうしてるの?
PHPで作っちまったほうが速いか?

624:nobodyさん
07/11/25 09:05:24
かなり遅レスになるけど>>578は、Lock FreeとかWait Freeなアルゴリズムについて勉強した方が良いと思った。


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

え?って感じ。センス疑う。

625:nobodyさん
07/11/25 09:12:48
まぁmod_uploderのコードもどうかと思うが

626:nobodyさん
07/11/25 12:59:10
その程度のこと、知らないとでも思っているのかね

627:nobodyさん
07/11/25 19:54:34
データの共有手段と排他手段がまったく直行関係にないかのような書き方してる時点でだめなんじゃね?初対面の人がそういうことはなしてたら俺はスキル疑うなぁ

628:nobodyさん
07/12/11 21:11:10
>>626
その自信からするとサイボウスラボとかmixiとかその辺のなかの人でしょうか?

>というのが速度的にはベストだろう。
こう言い切る前にはいくつかの前提が必要なはず。
もしかして自分が普段接している前提条件の下でしか考えられない人?

629:nobodyさん
07/12/11 21:18:21
文系上がりのプログラマってそういうこと多い。自分が暗黙のうちに想定してる前提を忘れがち。
理系だと卒論/修論書くうちにそのへんはみっちりなおされる。

630:nobodyさん
07/12/12 08:36:13 4x7KYrD1
age

631:nobodyさん
07/12/12 08:46:46
>>628
mixiはPerlじゃないっけ?
Yahooと楽天が一部をCで書いてたはず。

632:迷う
07/12/15 08:28:11
LibCGI
URLリンク(libcgi.sourceforge.net)

CGI++
URLリンク(www.webthing.com)

GNU Cgicc
URLリンク(www.gnu.org)

cgic
URLリンク(www.boutell.com)

633:迷う
07/12/16 17:33:32
GNU cgicc がよさそう.

634:nobodyさん
07/12/18 18:44:19 vyPDChvS
test

635:nobodyさん
07/12/18 18:52:24
GPLはうんこ

636:nobodyさん
07/12/19 23:58:08
cgiccはLGPLだが

637:nobodyさん
07/12/20 18:02:10 yjctAQBa
C++ で CGI というときに一番の難関は文字コードだと思うんだが
そういう危機感がこのスレにあまりないのは
やっぱり掲示板とかCMS級のユーザーフレンドリ階層なアプリを誰もC++らないからなのか…

JIS, SJIS, EUCJP, UTF7, UTF8, UTF16, UTF32 と改行コードまで自動判別しつつ
相互変化できるクラスを作ろうとしたら死にかけた

638:nobodyさん
07/12/20 18:58:34
babel使ったからそんなもんに苦労しなかったな。
他にもいろいろあるでしょ?


639:nobodyさん
07/12/20 19:10:00
Gaucheのソースが文字コード判定は優秀らしい。
それでもある程度バイト数がないと難しいだろうけど。

できればcharset指定とかを認識して、判断するのが正しいけど、
Webブラウザから渡されるのはcharset指定とかが一切ないからなー。
SJISかUTF-8のどっちを渡されたかは、予め決めておくか、
Gaucheのを使って判定するしかない予感。

変換は普通にiconv使ってる。

640:nobodyさん
07/12/20 19:20:22
判別用文字を仕込んどくんじゃないの?


641:nobodyさん
07/12/23 12:00:21
>>637
文字コードなんて問題にしたことは無い。
何もかもUTF-8で済ますように事前にお膳立てをするから。

642:nobodyさん
07/12/23 20:42:35
携帯の絵文字で困ったことになる

643:nobodyさん
07/12/25 14:44:19
そういや絵文字の範囲を丸々シフトしてiconvを騙してるフィルタのコードを見たことあるな。
あれ、C+iconvじゃなくてjavaだったかな。


644:nobodyさん
07/12/25 17:02:56
sendmailer は UTF-7 必須

645:nobodyさん
08/01/22 12:04:42
FileUploadのC/C++用ライブラリを探しています。
どなたかご存じないでしょうか?

646:nobodyさん
08/01/22 13:08:58
サーバから見て、アップロードしたいのか、ダウンロードしたいのかどっち?

647:nobodyさん
08/01/22 19:09:37
クライアントがアップロードしたものをサーバで受け取る際のHTTPプロトコル(RFC1867)
を解析するライブラリが欲しいです。
JavaでいうとCommons FileUploadのような

648:645
08/01/22 19:19:44
>>647 = >>645 です。_(__)_

649:nobodyさん
08/01/23 13:31:01
>>632の中から好きなの選べ

650:nobodyさん
08/01/28 13:56:18
ちょっとスレチっぽいが
cgiをコマンドラインから直接起動したいんだけど
POSTやGETで渡す引数を模擬するにはどうしたらいい?

651:nobodyさん
08/01/28 14:39:15
POSTなら標準入力にぶち込むだけでいい

652:nobodyさん
08/01/28 14:57:11
>>651
REQUEST_METHODとかCONTENT_TYPEとかCONTENT_LENGTHとかの
環境変数も設定する必要があるだろ。

653:nobodyさん
08/01/28 15:25:48
>>650
つ RFC3875


654:nobodyさん
08/01/31 15:15:22 4cRt7TvD
スレ違いかもしれないのですが
成分分析のフリーCGIをどなたかご存じないですか?



655:nobodyさん
08/02/03 05:14:18
expatの使いかたがわからん
サンプルソースがおいてあるサイトわかる人いる?

656:nobodyさん
08/02/04 10:06:40
本家のリンク先にあるチュートリアルとソースディストリビューション中のexampleで
とりあえず使うには十分じゃない?


657:nobodyさん
08/02/05 13:31:05
perlのクックブック(オライリー)を参考にした。

658:nobodyさん
08/02/12 10:17:26 4A4yMdyj
レンサバ使ってて、C言語可なんですけど

OSはLINUX系としか教えてくれない。
シェルは使わせてもらえない。
自前のPCでコンパイルして実行形式をUPしろ。
リンクするときにstaticにしないとダメよ。

としか情報が貰えません。
linuxの実行形式ってカーネルやディストリビューション違っても
互換あるんですかね?


659:nobodyさん
08/02/12 11:20:20
それはC言語使用可能とは言わないだろう。


ともかく、作ったバイナリがサーバで動くかどうかはバイナリの形式とか、
libc他のAPI互換性があるかどうかとか、CPUのアーキテクチャとかによる。

ま、フツーに最近のi386ディストリでgccを使ってスタティックリンクな
バイナリを作ればたいがい動くんじゃないの。


660:658
08/02/12 12:14:03
>それはC言語使用可能とは言わないだろう。

ボクもそう思うんですが、C言語使用可能と宣伝してたんです。
isleというそれなりに大きいレンサバ屋です。

cpuはxeonだと自慢してたので386系なのは確実なんですが…


661:658
08/02/12 12:17:32
ちなみにこれがisleのFAQ「C言語は利用できますか」の回答です。

C言語で作成されたスクリプトのご利用も可能ですが、
telnet/sshはご利用いただけないため、iクラスタにて利用している
Linux系のOSを利用している端末にてコンパイル後に
アップロードしていただく作業が必要となります。
他の端末にてコンパイルする場合には、ライブラリを共有できないため、
static オプションつけたコンパイルを行ってください。

662:nobodyさん
08/02/12 16:51:07
PerlのCGIでgccを叩いてみたらどう?
パスが通っていることと、負荷の制限が軽いことが条件だけど。
昔のXREAではそうしていた。
今からVirtual PCという手もある。

663:658
08/02/12 21:59:48
>662
telnet.cgiが使えました。

uname -a でfedora3だということもわかりました。
デバッグ用の環境をfedora3で作ります。

みなさんありがとうございました。

664:nobodyさん
08/02/23 09:06:34
フレーム内の監視を行いたいのですが、これにはどういう仕掛けを作れば良いんでしょうか。
インフレームの内部を監視して、表示された中身をソースかキャプチャで保存するCGIを作りたいのです。

665:nobodyさん
08/02/29 11:28:26
>>664
無理ぽ。

666:nobodyさん
08/04/19 14:56:01 TKfwdaTT
C++でClearSilver使おうと思ったんですが、素でC++用のAPIが入ってないのでClearSilver++?を使おうと思ったら
URLリンク(biology.nmsu.edu)
調べる限りここらしいんですが、繋がりません。
ミラーとか無いんですかね?

667:nobodyさん
08/04/20 15:29:47
もう復旧した様子

668:のし図
08/04/23 18:51:13 9jK7Jl1u
スクリプトの事で質問があります。
URLリンク(mk-board.net)

このスクリプトを抜いて自慢している人がいて、ソースを晒していた人がいるのですが
 どうやってこの
URLリンク(mk-board.net)
のスクリプトを抜いているかが気になります。
どうやるのですか?
教えて下さい

669:nobodyさん
08/04/24 09:33:08
ハッカーの仕業!?

670:nobodyさん
08/04/27 17:14:11 xxSAA3Zr
最近はやりのIISの問題を突いてるんじゃないの。


671:nobodyさん
08/05/01 04:51:52
不正アクセス禁止法

672:nobodyさん
08/05/21 02:58:51 H73mNdaA
不正アクセス禁止法

673:nobodyさん
08/05/21 04:31:31
668が嘘をついているという可能性が高い
気がしないでもない

674:nobodyさん
08/07/21 11:22:35 p8NBqSCe
ClearSilver++って落とせる?ftp繋がらないんだけど・・・

675:nobodyさん
08/07/24 11:50:25
>>666-667

676:nobodyさん
08/07/26 08:58:55
>>675
見えてるけど答えになってないよ。
いつ何度やっても繋がらないんだけど?

677:nobodyさん
08/07/26 09:21:58
C++ CGI さいきょー

678:nobodyさん
08/07/30 18:56:54
数年前にCで掲示板作ろうとしたが、文字コードであっけなく挫折
最近そのこと思い出してふらっと調べたら、VSで簡単にunicode扱えるようになってるのな
ちょいちょい思い出しながら作ってみるかな

679:nobodyさん
08/09/06 21:33:24 Z1+deiQP
なんだかんだ奥が深いよなぁ

680:nobodyさん
08/09/18 15:01:14 /9HVp0RB
CGIでエラーがあった場合エラーページにリダイレクトしてるんですが、
リダイレクトする前のエラー内容のエラーロギング(fprintf(stder,))が
出力されません。(何も出力されない)

syslogを使うことや他の方法も考えたのですが、とりあえずなぜ
エラー出力がでないか調べています。
なにか解決策あれば教えてください。

・apacheはver2.0です
・リダイレクトしない場合は、ちゃんとエラー出力される
・リダイレクトはLocation :~の絶対パス使用(相対パスによる内部リダイレクトだとエラー出力された)
・他の言語(PHP)で試すと、リダイレクト前のはちゃんと出力される



681:nobodyさん
08/09/18 22:43:17
$data = "MAILADDR=<入力したメールアドレス>\n PASSWORD=<入力したPW>\n";
if (open(FH, ">data.bat")) {
print FH $data;
close(FH);

↑CGIを使用しページを見ているユーザーに入力を求め、<入力したメールアドレス><入力したPW>に代入?させてファイルに書き出したいのですがいい方法ってありますか?

682:nobodyさん
08/09/18 22:48:21
ここはCあるいはC++用のスレなのでperlの質問はスレ違いです。

Perlコーディング初心者質問スレ Part 58
スレリンク(php板)

683:nobodyさん
08/09/24 13:34:55
>>680 fflushはしたの?

684:nobodyさん
08/10/09 01:47:06
>>683
fflushもしてみましたが、ダメでした。
何が原因なんだろう。

685:nobodyさん
08/10/09 15:17:08
Location: 受信と同時に接続が切られて、そんでmod_cgiからシグナルが飛んでるとか?
でもヘッダで指定したサイズまでは読むだろうしなぁ。

デバッガをアタッチして、なんで死んでるか見てみたら。


686:nobodyさん
08/10/11 03:41:33
fprintfとかCライブラリではなくシステムコール直に叩いてみて

687:nobodyさん
08/10/15 17:54:06
stdoutとstderrは親経由で表示とか、ロギングされてるだろうから、
接続が切られると即捨てられる運命にあるのでは?

いや、Location: 受信と同時に接続を切るようなクライアントがあるのかどうかしらんけど。
サイズを指定すればそのバイト数までは読むようになるのかも。


688:684
08/10/16 00:40:29
>686
exec系は一通りwaitしたりしつつ試してみましたが、ダメでした。
fflushなりprintなりは終わっているはずなんですが。。。

>686,687
Location時にもContent-lenghtをつける、ということでしょうか?
その場合って、stderrの出力分を指定?でしょうか。




ちなみに、複数台のサーバが全部そういう状態で、割と困ってます。。

689:nobodyさん
08/11/23 08:48:19 Zhb3/Rjb
プロセスが毎回生成されるから
c++であってもあんまり良くないんじゃない?

690:inaba
08/11/23 21:54:57 eDvTRSVx
EclipseでWebアプリケーションを開発しています。
サーバを起動時コンソールに以下のようなメッセージが出ます。

2008/11/23 21:23:44 org.apache.catalina.core.AprLifecycleListener init
情報: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
C:\Program Files\Java\jdk1.6.0_01\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.6.0_01\bin\..\jre\bin\client;
C:\Program Files\Java\jdk1.6.0_01\bin\..\jre\bin;hnologies\ATI Control Panel;C:\Program Files\Java\jdk1.6.0_01\bin;C:\Program Files\MySQL\MySQL Server 5.0\bin
2008/11/23 21:23:44 org.apache.coyote.http11.Http11Protocol init
情報: Coyote HTTP/1.1を http-8081 で初期化します
2008/11/23 21:23:44 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 562 ms
2008/11/23 21:23:44 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2008/11/23 21:23:44 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/6.0.10
SQL failed
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'ecsite.item' doesn't exist

データベースにアクセスできません。原因がわかる方お願いいたします。

691:nobodyさん
08/11/23 22:47:32
マルチ?

692:nobodyさん
09/06/17 02:16:44 zEMbuSde
ほっしゅほっしゅ

693:nobodyさん
09/07/04 17:57:16
文字コード面倒だな。決め打ち最強か。

694:nobodyさん
09/07/15 12:42:28
UNICODE

695:nobodyさん
09/07/15 15:51:36
正直、C/CGIとServletってどっちがはやいの?
Servletの仕組みvsC自体の速さの対決になるとは思うが。

696:nobodyさん
09/07/16 11:02:53
こんにちわ。
C++でフリーなサーバ作ってます。
そのCGI部分で質問させていただきます。

php-cgiをexecveして、cgi実行させるところまでは出来たのですが、
POSTが取れません。php-cgi実行時に標準入力に
POSTメッセージを書き込んでるのですが、php-cgi
では見えないようなんです。
またPHP_SELFも設定できません。
REDIRECT_STATUSとSCRIPT_FILENAMEは設定しました。
どこに聞けばいいかとか情報お持ちの方はお願いします。

環境はfedora core 7とg++です。
phpは標準についてくるものだけです。
よろしくお願い申し上げます。

697:nobodyさん
09/07/17 12:26:28
696です。自己解決しました。
POSTという文字列が大文字小文字区別がありました。
まとめておくと、
SCRIPT_FILENAME
REDIRECT_STATUS
を指定するのが必須。
execve等で/usr/sbin/php-cgi、引数にphpを指定して実行。
POST,GET等はcaseセンシティブということでした。

では。

698:nobodyさん
09/09/01 20:16:45
FastCGI+C が史上最速。

699:nobodyさん
09/09/03 10:53:56
Cでmodにしてしまう方がいいかも

700:nobodyさん
09/10/22 16:19:37
C++&FastCGIでcomet作れるかの


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch