トップページ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/
0329nobodyさん05/01/22 07:40:07ID:???
>>327
Perl CGIは実行できてるんだよね。
033032105/01/22 11:24:45ID:???
すみません
今確認してみたらPerlCGIも実行できてませんでした...

0331nobodyさん05/01/22 13:33:32ID:???
どこに置いて実行しようとしているんだ?

/cgi-bin/ならデフォルトでAliasが設定されているから>>328のように
Options +ExecCGIを追加しないとならないし。
俺は/cgi-bin/のAliasをコメントアウトして全ディレクトリで使えるようにしてある。

DocumentRoot "実際のディレクトリ"

<Directory "実際のディレクトリ">
Options FollowSymLinks MultiViews ExecCGI Includes
AllowOverride ほげほげ
Order allow,deny
Allow from all
</Directory>

AddHandler cgi-script .cgi .pl
0332nobodyさん05/01/22 13:34:34ID:???
あるいはユーザディレクトリなら別の部分で設定しなきゃならんよ。
0333nobodyさん05/01/25 07:56:51ID:hWOf15Pd
>>304さんに便乗して質問です。
ログイン情報を記録する方法はわかったんですが、
クライアントが適切なログオフ処理をしなかったらセッション管理用のファイルは残りますよね?
例えば、クライアントがブラウザを閉じたらサーバ側で勝手にログオフ処理、なんてことは出来ないでしょうか?
0334nobodyさん05/01/25 08:11:21ID:???
絶対無理っしょ。
時間制限でタイムアウトするくらい。
0335nobodyさん05/01/25 09:11:15ID:???
普通は>>334の方法でやるね。
033633305/01/25 10:01:05ID:???
わかりました。一時間リクエストがなかったらログオフするようにしたいと思います。
ありがとうございました。
0337nobodyさん05/01/25 16:55:53ID:???
クッキー使えばええやん
0338nobodyさん05/01/26 09:08:53ID:???
>>337
どうやって?
クッキーつかってもクライアントがブラウザ閉じたかなんてサーバー側では
判らんと思うが?
0339nobodyさん05/01/26 15:10:15ID:???
有効期限を過去に設定すればブラウザを終了させた時点でクッキーが消える。
0340nobodyさん05/01/26 15:17:37ID:???
>>339
だから?
0341nobodyさん05/01/26 15:48:12ID:???
>>340
少しは頭を働かせたら?
0342nobodyさん05/01/26 16:06:10ID:???
>>341
お前が一番頭が働いていないようだが
0343nobodyさん05/01/26 16:11:38ID:/NT/JEVZ
>>339
クッキーは消えてもサーバのセッションファイルは残るんだよ。
それをどうすればいいかを考えてるの。
ちなみにPHPでは
session.gc_maxlifetime = 1440
とかで時間を指定してガベージコレクションしてる。
0344nobodyさん05/01/26 16:26:34ID:???
>>339
消えても次にアクセスがあった時にクッキーがあるかどうかの
判断に利用できる程度だろ。
そういう話をしてるんじゃないの。
0345nobodyさん05/01/26 16:43:31ID:???
337が言っているのはセッションを使わずに、という意味だと思うが。
0346nobodyさん05/01/26 17:01:46ID:???
>>345
そうか
>>337言葉が足りないんだよ
0347nobodyさん05/01/26 17:07:30ID:???
>>345
だとしても的外れには違いない。
0348nobodyさん05/01/26 17:10:17ID:???
>>346
確かに。
034933305/01/27 00:23:16ID:???
なんか種を蒔いちゃったみたいですいません…
自分としてはユーザ毎にデータファイルを必要とするプログラム書こうと思うんで
やっぱりタイムアウト処理になると思います
0350nobodyさん05/01/27 12:24:39ID:???
当分はこのスレ下がるばかりか・・
0351nobodyさん05/01/27 13:55:33ID:???
てかもはやCとかC++の話じゃなくてCGI一般の話ジャン
0352nobodyさん05/01/29 01:15:48ID:???
すっかりCGIの話なのでアレだが、
Flash埋め込んでSocket通信させるってのはどうよ。
>ブラウザを閉じたらチェック
0353nobodyさん05/02/15 23:46:08ID:???
cgiでscanf使えますか?
0354nobodyさん05/02/17 07:25:27ID:27dZ6TGB
質問させて下さい。
フォームから受け取った値をgetcharで読み込んでいるんですが、
「 , 」が%2Cになってしまいます。どうすればいいでしょうか?
0355nobodyさん05/02/17 08:36:36ID:???
>>354
%2Cを , に変換すればいい
035635405/02/17 11:16:54ID:???
>>355
ありがとうございました。
URLエンコードという言葉を今日はじめて知りました。。。
0357nobodyさん05/02/18 23:50:55ID:???
>>353
標準入力に対するものだから、使える事は使えると思う。
が、入力書式が CGI とは合致しないわけだから、>>354がトライしているように、
getchar とか使って URL エンコードを自前 or ライブラリでやる方が
モアベターだと思う。
0358nobodyさん05/02/20 17:03:47ID:???
scanfなんてBOF問題バリバリの関数を使うなよ…
0359nobodyさん05/02/20 20:42:33ID:???
ろくに知識がない奴ほど↑みたいな書き込みをするね。
0360nobodyさん05/02/21 11:04:26ID:???
>>358
問題を理解した上で、自分の目的を満たすにはこれが良い、と思ったんなら、
どんどん使えば良い。と思うぞ。

包丁なんて怪我しやすい道具を使うなよ…

なんて言わないべ?フードプロセッサー使ったって良いんだけどさw
0361nobodyさん2005/04/23(土) 18:11:42ID:???
質問です
今までPerl,PHP等やってきて最近C言語でCGIスクリプト作成をはじめましたが、排他処理は一般的にはどの手法を使いますか?
やはりフォルダを作成する方法ですか?
0362nobodyさん2005/04/24(日) 21:13:21ID:WkqhPVlv
VCでHelloWorldのテストCGIを作ったところ、111kBでした。
同じくLSICでコンパイルすると17kBでした。(500で動きませんでしたが。)

なぜこんなにサイズの差があるのですか?もっと減らす方法はありませんか?
0363nobodyさん2005/04/25(月) 00:23:01ID:???
>>362
MS-DOSとWin32の違い
0364nobodyさん2005/04/27(水) 01:22:34ID:???
>>362
VC++のほうがデバッグモードになってないか?
0365nobodyさん2005/04/27(水) 10:44:49ID:???
>>362
やってみたら
Debugで160k
Releaseで40k
03663622005/04/27(水) 21:39:50ID:???
うわ、本当だ…
お騒がせしました
0367nobodyさん2005/05/19(木) 21:48:26ID:GAjOQJM0
今晩は、スレで度々話題になってるようですが、いまいちわからないので質問させてください。画像ファイルの質問です。
<input type="file">でjpegやGIF、BMP画像をpostで送信した場合、標準入力に他の文字列等と同様name=に画像ファイルデータ
が送られているのでしょうか?その画像ファイルはどの様に処理したらいいのでしょうか?ご教授ください
0368nobodyさん2005/05/19(木) 22:14:38ID:EjA+9pug
http://z57.2?-121-74.?pp.??kw?k.ne.?p:8080
http://z57.2?-121-74.?pp.??kw?k.ne.?pうへへ。
0369nobodyさん2005/05/20(金) 10:35:30ID:???
>>367
CのCGIライブラリでも使え
検索したらあるはず
03703672005/05/20(金) 15:58:18ID:UC8INN3X
>>369
CGI用のライブラリーってありますけど製作者のあくがつよすぎて理解するのが大変なんですよね・・・
なんで自分で関数から作った方がいいと思ってるんですよ・・・勉強にもなるし。
0371nobodyさん2005/05/20(金) 16:16:48ID:???
>>370
だから、そういったライブラリがあるだろ。
アクが強いとか関係無しに、どういう仕組みかが分かってないから
>>367のような質問をしたんでしょ?

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

アクが強いとか理解が大変とか言ってるが、結局、頭悪いだけじゃん。
0372nobodyさん2005/05/20(金) 16:23:25ID:???
>>367
http://www.gnu.org/software/cgicc/cgicc.html
つかっとけ。

書き込み見る限り、君のおつむじゃこれよりもまともなのを作るのは無理。
0373nobodyさん2005/05/20(金) 17:27:26ID:???
>>367
http://www.boutell.com/cgic/
GDライブラリ開発してるところ
2.0からファイルアップロードに対応してる
03743672005/05/21(土) 07:08:21ID:???
やれやれ・・
コード読め?
読むような質問じゃあないだろうに。あほ
コード読め、コード読め、って猿の一つ覚えのような回答しかできないんだったらだまってろよ。
そのほうが百倍有益w
0375nobodyさん2005/05/21(土) 10:33:25ID:???
aso
0376nobodyさん2005/05/21(土) 16:05:50ID:???
>>374
読まなくていいから、パクれ。
0377nobodyさん2005/05/21(土) 17:00:57ID:???
だれも「読め」とは言ってないが。

日本語は読めて、理解できるよね?理解の方がおぼつかないのかな?
そういうのは十代のうちになんとかしといたほうが良いよ。本当に。
0378nobodyさん2005/06/02(木) 04:47:54ID:tNFRcCbR
getenv("PATH_INFO")で文字列取る時に
事前に長さが分からないから異常に長いURLでアクセスされたらやばくない?
と思うんだけど。
このPATH_INFOの文字列のポインタが分かればstrlenで長さを求めて弾くなり必要量mallocするなり出来るけど、
値しか分からないよね?
普通はどうやってこの問題を回避するの?
0379nobodyさん2005/06/02(木) 07:21:13ID:???
getenvを使ったことがある人からは
そんな疑問は出ないはずだが
0380nobodyさん2005/07/24(日) 09:53:58ID:FFgeh8au
話題がないお
0381nobodyさん2005/07/25(月) 08:35:49ID:???
>>378
亀さんのレスです
Apache様が長いURLは規制してくれています
0382nobodyさん2005/07/25(月) 23:47:14ID:bB/wQjJG
自分のサイトがF5アタックにめちゃくちゃ弱いことに気づいた。
セッション管理のためにページを開くたびにMySQLに問い合わせに行ってるのですが、もっと良い方法があるのでしょうか?
0383nobodyさん2005/07/26(火) 07:44:25ID:???
防御コード書けばいいじゃん。
0384nobodyさん2005/07/26(火) 12:18:15ID:???
>>382
CでMySQLへの問い合わせってどうやるの?
出来るなら今度やってみよ
0385nobodyさん2005/07/26(火) 15:24:03ID:???
>>384
MySQL純正の接続ライブラリを利用するなら、
それをラップしてる他の言語で慣れてる人ならアホ程簡単。
0386nobodyさん2005/07/26(火) 20:27:09ID:???
>>384
このへんだろうね。
http://www.softagency.co.jp/mysql/TIPS/C/connect.html
http://dev.mysql.com/doc/mysql/ja/c.html

私もCで接続したこと無いけど。
0387nobodyさん2005/07/27(水) 15:50:58ID:???
>Cで接続

(;´Д`)ハァハァ
0388nobodyさん2005/07/28(木) 07:20:11ID:???
ボキもSegmentation faultで泣かされますた
0389nobodyさん2005/08/25(木) 07:40:55ID: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;
}
0390nobodyさん2005/08/25(木) 07:43:44ID: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>

と、なってしまっております。
0391nobodyさん2005/08/25(木) 08:19:05ID:???
stdioのバッファリング
0392nobodyさん2005/08/25(木) 13:08:38ID:URNXAJj0
>>391
なるほど!
ありがとうございます。
fflushで、解決いたしました。
0393nobodyさん2005/08/26(金) 20:14:39ID:Tl6OQEOB
最近C/C++CGIって廃れてるよな…
0394nobodyさん2005/08/26(金) 20:16:53ID:???
あえて言おう。

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


地元市役所に内定した俺様は神!
http://ex11.2ch.net/test/read.cgi/news4vip/1125046666/l50


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


【市役所合格】こいつ誰だかわかる?
http://society3.2ch.net/test/read.cgi/koumu/1125051467/l50


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


0396nobodyさん2005/09/03(土) 14:14:39ID:???
>>393
やっぱライブラリ不足が原因だろう。
cgiccってでかい割にほとんどなんも出来ないし
0397nobodyさん2005/09/22(木) 00:50:59ID:Lo9GY17f
2chのCGIはCで作られている。
証拠

http://pc8.2ch.net/test/read.cgi/tech/1123869310/
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
あけましておめでとうございます。
■ このスレッドは過去ログ倉庫に格納されています