C/C++ CGIスレッドat PHP
C/C++ CGIスレッド - 暇つぶし2ch2:nobodyさん
04/02/26 09:00
あ、スレッドナンバー入れるの忘れた。part 3かな?

3:パックで前歯折りage!
04/02/26 09:33
>>2
C/C++統合スレだからPart1でいいよ

4:nobodyさん
04/02/26 09:35
Cで書かれたchat
URLリンク(www.asahi-net.or.jp)


5:nobodyさん
04/02/26 10:01
スクリプトを検索

6:nobodyさん
04/02/26 13:43
相変わらず CGIどまりですか?

apache module はやらないんですね…

7:nobodyさん
04/02/26 20:33
次は
C/C++ Webアプリ全般スレッド
かな

8:nobodyさん
04/02/26 20:43
>7
いつになることやら

9:nobodyさん
04/02/27 01:38 qZWWODH+
>>8
荒れればあっという間

10:nobodyさん
04/02/27 02:32
#include <cgi>

11:nobodyさん
04/02/27 03:00
#include <2c.h>

12:nobodyさん
04/02/27 10:27
C/C++のネイティブ感がたまらん。

13:nobodyさん
04/02/27 16:32
>>6
そこまで行くとこの板の範疇じゃ無いだろ。

14:nobodyさん
04/02/27 23:40
C++っていいよね。

15:nobodyさん
04/02/27 23:58
前スレからC++がいいと言う人が何人かいますが
そういう人はどんなコンパイラを使っているのでしょうか?

16:nobodyさん
04/02/28 01:47
ふつうにgccじゃないの?

17:nobodyさん
04/02/28 19:52
書くときは VC++ 2003。

18:nobodyさん
04/03/01 00:38
CGI書くのにわざわざVC++使いますか?

19:nobodyさん
04/03/01 10:31
MinGWのGCCは、std::wstring周りがうまくいかない希ガス

20:nobodyさん
04/03/02 18:04
>>13
apache modle で blog とか 掲示板とか をつくったりするなら
web prog じゃないかなって思ったんだけどね

21:nobodyさん
04/03/02 23:32
cのCGI動かす時、apacheの設定どうしてますか?

perlのスクリプトと混在してると
perlに送られてエラー500返されちゃうので困ってます。

22:nobodyさん
04/03/02 23:33
( ゚д゚)ポカーン

23:nobodyさん
04/03/02 23:34
>>21
(゚Д゚)ハァ?

24:nobodyさん
04/03/02 23:47
尋ね方がおかしかったでしょうか。
それとも根本的な勘違いでしょうか。

後者なら出直して参ります。

25:nobodyさん
04/03/03 00:28
スレ汚し申し訳ありません。
”とんでもない勘違い”をしていました。

無事動作致しました。

26:nobodyさん
04/03/09 16:32
CGIに不正入力はつき物だが

その場合戻り値でmainまで報告するか、それともexitを使ってその場で終了か
どっちがいいかの。

27:nobodyさん
04/03/09 18:35
C++なら例外投げるヨロシ

28:nobodyさん
04/03/10 07:03
Cで書いた CGI で画像を表示したいと思ってるんだが、どうもうまく行かない。
鯖は Windows の Apache、C で書いたテキストベースの CGI は問題無く動作してるのだが・・・。

CGI 本体はこんな↓感じ。

infile = fopen( filename, "rb" ); /* もちろんファイルネームは入れてあるよ */
if( NULL != infile ) {
  i = fread( rbuf, 1, SIZE, infile ); /* SIZE は画像ファイルのサイズだよ */
  printf( "Content-Type: image/gif\n\n" );
  setmode( _fileno( stdout ), _O_BINARY ); /* Windows だからこうする(涙) */
  fwrite( rbuf, 1, SIZE, stdout );
  setmode( _fileno( stdout ), _O_TEXT ); /* そして元に戻しておく */
  fclose( infile );
}

で、MIME タイプを書き出す printf だけをやめて、鯖 PC でこの CGI を直に実行して
リダイレクトで画像ファイル作ると、ちゃんと出来てるんだな これが。

呼び出す時は何の変哲も無く img タグによる CGI 呼び出しなんだが、
バッテンしか表示されない・・・。

正直、行き詰まってます。どなたかお助けを・・・。

29:nobodyさん
04/03/10 13:08
>>28
img じゃなくて ダイレクトにそのCGIを呼んだらどうなる?

30:28
04/03/11 09:03
ごめんなさい呼び出す HTMLが間違ってました吊ってきます・・・

あ、ちなみに上記のよーなソースで、ちゃんと出来ましたですよ。これで Cでも画像出すのはオッケー。

31:28
04/03/11 09:05
>>29
えとですね、MIMEタイプで imageにしちゃってるんで、imgタグでないと無理です、たぶん。
吐き出してる内容はバイナリなんで、MIMEタイプを textにするってワケにも行きませんし。

32:nobodyさん
04/03/11 09:46
MIMEタイプで imageにしちゃってるんで、imgタグでないと無理

33:nobodyさん
04/03/11 10:27
ブラウザのアドレス欄にそのCGIのURL入力でも表示できるだろ。

34:nobodyさん
04/03/11 14:15
>>31
試してみた?

>>32
したっかぶりっこ?

MIMEがついてるんだからこそブラウザ側で判断してくれてちゃんと画像として表示されるよん

35:nobodyさん
04/03/11 14:22
したっかぶりっこ?

36:nobodyさん
04/03/11 14:33
つーか、ブラウザで.gifへのリンクが開けないとでも思っているのか、と。
URLリンク(pc2.2ch.net)

>34
>32は晒し上げしているのではないかと。

37:34
04/03/11 16:01
>>36
ああ 本当だ すまそ >>33

38:28
04/03/11 19:49
>>29
あ、ダイレクトに、ってのは、ブラウザからって意味ですか・・・。
すみません、思い切り勘違いしてました。
(imgタグでない、他の方法で HTMLに記述しろ、という意味かと思ってました・・・ formとか)

試してませんが、たぶん出来ると思います。>>33>>34>>36さんの言ってる通りではないかと。

お騒がせしたです・・・。

39:sage
04/03/12 01:21 vGYEPhj3
Web製作版から出直しな

40:nobodyさん
04/03/12 01:22
書くとこ間違えた_| ̄|○

41:nobodyさん
04/03/12 02:23
WindowsでLinux用バイナリを吐くことができる
C++コンパイラってありますか?

42:nobodyさん
04/03/12 08:35
>>41
答えにはならないけど、LiveCD使うといいのでは?
漏れはLinuxユーザだけど、FreeBSDのサーバで動かすために
FreeBSDのLiveCDを使ったらうまくいった

43:nobodyさん
04/03/12 11:09
>>42
FreeSBIEとかいうやつ?

44:nobodyさん
04/03/12 11:36
>>43
URLリンク(livecd.sourceforge.net)
URLリンク(www.freesbie.org)
URLリンク(www.netboz.net)

漏れはひとつめのLiveCDというのを使った
aaacafeで動いてる
libc(?)以外のライブラリは静的リンクにしてある

% ldd hoge.cgi
hoge.cgi:
libm.so.2 => /usr/lib/libm.so.2 (0x28091000)
libc.so.4 => /usr/lib/libc.so.4 (0x280ad000)

linuxだとgccやglibcのバージョンに気をつけて選ぶといいかもしれない

45:nobodyさん
04/03/12 17:02
>>42-44
試してみます。ありがとうございました。

46:nobodyさん
04/03/14 14:00
Lindowsじゃ無理?

47:nobodyさん
04/03/14 14:37
>>46
個々のdistroの詳細は板違いなので
Linux板のdistro比較のスレなどを見たほうがいいかも

とりあえずこのへんをチェック
URLリンク(www.distrowatch.com)
URLリンク(www.distrowatch.com)

48:nobodyさん
04/03/14 22:45
CでCGI書くとき、filelockはどうやってます?

49:nobodyさん
04/03/14 23:13
fcntl

50:nobodyさん
04/03/15 08:03
スレリンク(linux板:221番)
あのキモヲタがゴリゴリCでCGIを書く時のライブラリを作っているらしい。

51:http:// FLA1Aah099.kyt.mesh.ad.jp.2ch.net/
04/03/15 09:04
guest guest/98

52:nobodyさん
04/03/16 00:14
>48
mkdir

53:nobodyさん
04/03/16 13:40
flock()

54:nobodyさん
04/03/16 23:46
fcntl(2)
flock(2)
lockf(3)

55:nobodyさん
04/03/18 02:03
resize.plの C版みたいなの知りませんか?
ここ検索すれとか、何か情報キボン。

いちおうググってみたいけど、ロクなのが見つからない・・・ OTL

56:nobody55
04/03/18 02:04
みたいけど

みたけど

57:nobodyさん
04/03/18 17:25
ロクなのが見つからない

58:nobodyさん
04/03/21 00:25 NzuooVWx
いかりや長介さん、亡くなっちゃいましたね。
ご冥福をお祈り申し上げますです。

59:nobodyさん
04/03/21 00:45
それはいいが
なぜこのスレに書き込んだのかが、大きな問題だ。

60:nobodyさん
04/03/21 00:47 h03qa3k8
>   【訃報】いかりや長介さん逝去
> すばらしい笑いと、円熟の演技を与えてくれたいかりや長介さ
> んが亡くなりました。
> ご冥福をお祈りします。
>
> なお、現在news系のサーバはアクセス過剰で繋がりにくくなっ
> ています。
> いかりやさんを偲ぶのには以下の板をご利用ください
> URLリンク(live8.2ch.net)
> URLリンク(live10.2ch.net)

61:nobodyさん
04/04/01 03:11
URLリンク(acpp.sourceforge.jp)
こんなの見つけた

62:nobodyさん
04/04/01 22:19
>>61

説明ド下手糞な気がするんだが

63:61
04/04/01 23:23
>>62
俺もそう思った

64:nobodyさん
04/04/12 09:09 /q6VLnQf
age

65:nobodyさん
04/04/14 20:29
char AtoH( char c ){

if( ('0' <= c) && (c <= '9') ) return c - '0';
if( ('A' <= c) && (c <= 'F') ) return c - 'A' + 10;

return 0;
}


// 特殊記号を変換する
void form::Escape( char* src )
{
if(src){
char *dst;
for(dst = src; *src; src++ ){
if( *src == '%' )
*dst++ = ( AtoH( *++src ) << 4 ) + AtoH( *++src );

else if( *src == '+' ) *dst++ = ' ';

else *dst++ = *src;
}
*dst++ = '\0';
}
}

URLエンコード文字列をデコードする関数なんですが、
これがVC2003でうまく動かないんです(VC6ではできたのに)。

原因がわかる人がいらしたら教えてください。
VC2003はほとんど初期設定です。

66:nobodyさん
04/04/14 20:34
( ゚д゚)ポカーン

67:65
04/04/15 18:39
自力解決しますた…
お騒がせスマソ…

68:nobodyさん
04/04/17 18:21
なんて過疎

69:nobodyさん
04/04/21 16:53
CGI/1.2ドラフトを訳していたのですが、質問です。
URLリンク(cgi-spec.golux.com)

章8.2 のLocationに関する項目を読むと、絶対URIがスクリプトによって返されると、
サーバは'302 redirect' HTTP応答メッセージを発生させるだろう、とあります。

しかし、302はMoved Temporarilyで、307 がTemporary Redirectになります。
これは誤植と解してよいのでしょうか?

70:nobodyさん
04/04/21 21:33
>>69
スレ違いな気もするけど…。
307コードがHTTP/1.1以降だからでは。

71:nobodyさん
04/04/21 21:54
ああ、このドラフトはHTTP/1.0策定時点のままということか。
了解しました。サンクス。
URLリンク(www.itmedia.co.jp)

つーか、ドラフトのまんまでなぜ決定しないんでしょうかね。

72:nobodyさん
04/05/01 20:42
M$が不要と言うから

73:nobodyさん
04/05/02 15:38
1月1日はドラフト記念日

74:nobodyさん
04/05/04 00:34
このスレを活気付かせるにはどうしたらいいものか

75:nobodyさん
04/05/05 01:01
>74 が C/C++ による CGI 用のフレームワークを作成してくださるそうです。

76:nobodyさん
04/05/05 03:48
aprを積極的に利用してみるスレにしたら

77:nobodyさん
04/05/05 21:54
巨大なクエリ来た時にどうするのが王道でしょうか

78:nobodyさん
04/05/06 02:53
無視する

79:nobodyさん
04/05/06 07:13
>>61情報thx。

URLリンク(acpp.sourceforge.jp)
どうもプリプロセッサっぽい感じなんだが、こういう言語仕様に踏み込むもんより、
便利関数ライブラリの方が喜ばれると思うんだがなぁ。

とは言うものの、今困ってるのはサムネ画像生成だけなんで、他はいらんけど・・・。

80:nobodyさん
04/05/06 07:24
>>77

>>78が正解でしょ。
より詳しく書くなら、まず「大量とは、どれだけなのか」を規定し、規定以上のは無視。って事で。

81: ◆Ad8rdfdZgs
04/05/06 18:24
>>65

関係ないが
char AtoH( char c ){
if( ('0' <= c) && (c <= '9') ) return c - '0';
if( ('A' <= c) && (c <= 'F') ) return c - 'A' + 10;
return 0;
}



char AtoH( char c ){
if( ('0' <= c) && (c <= '9') ) return c - '0';
if( ('A' <= c) && (c <= 'F') ) return c - 'A' + 10;
if('a'<=c)&&(c<='f')) return c-'a'+10;
return 0;
}

EzWeb機が%ffみたいに送ってくるから、後々のためにもこの方が。

>>77
if(atoi(getenv("CONTENT_LENGTH"))>=1024000) return 0;
char *buf = new char[atoi(getenv("CONTENT_LENGTH"))+1];
//あとは好きにしる

delete [] buf;

82:65
04/05/06 18:38
>81
あるんだそういうの
サンクス


ちなみに
*dst++ = ( AtoH( *++src ) << 4 ) + AtoH( *++src );



*dst = AtoH(*++src) << 4;
*dst = AtoH(*++src);
dst++;

にしたらうまくいったんすよ
なんかやっぱMSだなと思た

83: ◆Ad8rdfdZgs
04/05/06 18:59
>>82
dstの位置変わってないから
*dst = AtoH(*++src) << 4;
の意味がなくなってる気もするんだが。

*dst = AtoH(*++src) << 4;
*++dst = AtoH(*++src);
dst++;
とでもしないと、dstに下位4ビットだけを突っ込んでる気がしてならないんだが。

84:nobodyさん
04/05/06 20:02
*dst += AtoH(*++src);
だた


85: ◆Ad8rdfdZgs
04/05/06 21:54 mtQhCRig
>>84
あ、漏れの書いたのが間違ってた・・
こっちのほうがまずいw

納得

86:nobodyさん
04/05/06 23:36
>>77
エラートラップ。

>>82
> *dst++ = ( AtoH( *++src ) << 4 ) + AtoH( *++src );
二箇所の*++srcのどちらが先に処理されるかは未定義。

87:nobodyさん
04/05/07 02:51
>>65>>82

>>86も言ってるが、今はコンパイラが働き者だから、1行で済ます必要は無いと思うぜ・・・。
恥を忍んで言うが、漏れが *dst++ = ( AtoH( *++src ) << 4 ) + AtoH( *++src );  こんなの書こうとしたら、
数行になってしまう。でも間違いにくいから良いんだと思ってる。勝手に。

副作用とかいちいち憶えてらんないし・・・マクロ書く時に苦しむのもやだし。

88:nobodyさん
04/05/07 09:40
>>87
いいこといった。

89:nobodyさん
04/05/09 14:01
>65
>なんかやっぱMSだなと思た

自分のバグを他人のせいにするな。


90:65
04/05/09 16:10
ごめn

91:nobodyさん
04/05/23 22:40 Mos9rAOM
なんだかどうも、プログラムの引数に「=」の文字を入れると動作がおかしいのです。

というのは、
たとえば Perl の CGI で
 test.cgi?a=5
とすれば、$ENV{'QUERY_STRING'} の中身は "a=5" になるのに、

C で作った CGI (printfするだけのモノ) だと
 test.cgi?a=5
としても、main(int argc,char *argv[]) の argc が 1 で引数が受け取れてないのです。
test.cgi?a5
とすれば、argc は 2 になって、argv[1] の中身が "a5" になるのですが。

そういうわけで引数に「=」を使えない理由と対処をキボン願います。


92:91
04/05/23 22:43
ちなみに、自宅サーバで
Apache HTTP Server 2.0.49
を使ってます。Apacheの設定に問題があるのかな…


93:nobodyさん
04/05/23 22:58
釣り…か?

Perlの$ENV{QUERY_STRING}に相当するものはstdlib.getenv("QUERY_STRING")なわけだが。

94:nobodyさん
04/05/23 23:31
別にC言後とは関係ないけど引数で処理したかったら

hoge.cgi?-hoge+true+-fuga+false
などとすれば

./hoge.cgi -hoge true -fuga false
こうなる

あとはgetopt(3)でも使えばオプションの処理ができるかな
まあ一般的ではないな

95:nobodyさん
04/05/24 15:40
>>91
Cで作る CGI プログラムは、普通のコンソールアプリと基本的には同じだが、
main関数でもらえる「引数」と、CGI で渡される「引数」は、全くの別物だ。

main関数の「引数」は、コマンドラインで与えられるものだが、CGI の方は
サーバから環境変数を経由して与えられる。なので>>93が言ってる事を試してみそ。

>>93
釣りにしてはあまりにあまりな・・・・なので、さすがに釣りではないと思うよ。

96:91
04/05/24 23:40
>>93-95
なる。基本的なところを忘れてました。環境変数でしたね。
getenvでできましたです。ありがとうございました。


97:nobodyさん
04/05/24 23:58
>>96
(・∀・) オメデトウ!コレカラモガンガッテイコウ!

98:nobodyさん
04/05/25 09:45
POSTの場合は?
ってゆうかそのあたりも含めて楽になるperlのCGIモジュールみたいなのとかあるんでしょうか?


99:nobodyさん
04/05/25 13:14
POSTはstdinから。
aprとか使えば少しは楽になるかも
URLリンク(apr.apache.org)

100:nobodyさん
04/05/25 17:05
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さん
04/05/28 21:45
自分もその辺気になりつつも資料見つけられず躊躇してたんですが
挑戦してみようと思います。

/*ただスクリプトの時にはあまり気にしなかったメモリ管理とか不安もあります。
何かしら”C/C++ゆえに気をつけるべき事”とかあるんでしょうか?*/

102:nobodyさん
04/05/29 10:51
C++はあまり詳しくないが、Cについて気を付けるべき事はたくさんありすぎて、とてもここでは書ききれないがな。
漏れが言えるのはこれくらい。レベル的にバラバラの事書いててスマソ。

・取得したメモリリソースは必ず解放せよ
・変数の型には気を付けすぎるくらい気を付けよ(ロジック調べても分からんバグの原因になる)
・ポインタは理解して使え
・コンパイルするので、変数名は長くてもいい、分かりやすいものを!
・同じ理由で、コメントもしつこく書け
・同じ理由で、短く書こうとするな(バグの原因になる事がある)
・1つの関数を長くしすぎるな
・==演算子で定数と変数を比較する時は、定数を左辺に書け(間違って=にしてもすぐ分かる)
・プログラムテストは慎重に細心に、完璧を目指せ


103:nobodyさん
04/05/30 01:08
C++でも入出力系はstdioのほうがやり易いと思う
小さいし

104:nobodyさん
04/05/30 05:37
>>101
Cなら文字列操作とメモリ管理のライブラリをどこかから調達するか、
自作してから取り掛かった方がいいよ。
バッファオーバーフロー対策が一番面倒だから。

105:nobodyさん
04/05/31 18:03
perlとかにあるsplit関数に当たるものがあると便利

106:nobodyさん
04/05/31 19:24
>>102
ありがとうございます。
C/C++以外でも使えそうなTIPSが多くて参考になります。
慎重さは勿論のこと、ちょっとした工夫も大事と再認識しました。
>>104
こちらもありがとうございます。
まずはそういうライブラリを読むところから始めてみますね。

107:nobodyさん
04/06/01 00:28
昔、Lispやっててperlのsplit関数自作したことあったな

108:nobodyさん
04/06/06 21:23 NScYEbPc
jcode.plのようなものってありませんか?

109:nobodyさん
04/06/06 21:48
iconv

110:nobodyさん
04/06/07 01:33 H9Q5V/FE
C/C++/D用(ってかx86用)のアプリケーションサーバが出たら乗り換えますか?
関数、クラスの単体テストエンジンとかついたようなヤツで。

111:nobodyさん
04/06/11 01:06
スタンドアローンて拡張性無いけど手軽なのよね

112:nobodyさん
04/06/26 15:46
perlやphpに比べて生産性が低くて不利ですな。
mod_perlにスピードで負ける事もあるし。
mod_cobolとかあるのかしら

113:nobodyさん
04/06/26 15:49
( ´_ゝ`)フーン

114:nobodyさん
04/06/27 18:25 EhMRIfAG
すまん、CでCGI作るときに便利なライブラリとかってないかな。
探しても探してもでてこないんだが・・・

115:nobodyさん
04/06/27 20:07
( ´,_ゝ`)プッ

116:nobodyさん
04/06/27 20:10 EhMRIfAG
こんなに必死に頼んでいるのに教えてくれないなんて、
ここはひどいインターネットですね!

117:nobodyさん
04/06/27 20:21
(・∀・)ニヤニヤ

118:nobodyさん
04/06/27 20:25
2chだからある程度は割り切らないと

119:nobodyさん
04/06/27 20:43 EhMRIfAG
// ここはひどい(ry のネタ知らない人がいるっぽ
探してもやっぱり見つからんです。


120:nobodyさん
04/06/27 20:56
いい加減なやつしかいないスレにはいい加減に書き込めばいいんだよ

121:nobodyさん
04/06/27 21:56
>>114
>探しても探してもでてこないんだが・・・

URLリンク(www.gnu.org)
お好きなのをどうぞ。




122:nobodyさん
04/06/28 16:49 Mb32PIG4
webminなんかがどう関係あるんだろうと小一時間(ry

123:nobodyさん
04/06/28 18:59
フォームのデコード&検索クラスがあればあとはどうでもいいけどね
所詮ラインプログラムだし

124:nobodyさん
04/06/28 19:14
>>122
gnu.orgの人に聞いてくれたまえ。


125:nobodyさん
04/06/29 15:43
gnu.orgの人も大変だな

126:nobodyさん
04/06/29 18:42 iEl5sUlF
URLリンク(www1.harenet.ne.jp)
これに英文の問題を入れたい場合、Word.jsはどのようにいじれば?

127:大学の宿題だけど意味不明、おしえてけろ
04/07/02 22:30 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さん
04/07/02 22:40
ローカルルールくらい読んでくれな

129:大学の宿題だけど意味不明、おしえてけろ
04/07/02 22:45 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さん
04/07/03 00:39
>>129

(Start)
 ↓
[回転処理]
 ↓
(End)


131:nobodyさん
04/07/03 11:52
$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さん
04/07/03 11:53
( ゚д゚)ポカーン

133:nobodyさん
04/07/05 15:51 /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さん
04/07/05 16:25
% man 3 fgets

135:nobodyさん
04/07/05 16:27
>>133
>これじゃDataには入らないの?

URLリンク(www2k.biglobe.ne.jp)
参考になるかも。

アップロードの場合、
getenv("CONTENT_TYPE")がapplication/x-www-form-urlencoded
じゃなくて、multipart/form-data; boundary=----------hogehogeohogehoge
ってなってるはずだから読み込んだデータを分離する必要あるんじゃない?

136:nobodyさん
04/07/05 18:14 /46odsg/
>multipart/form-data; boundary=----------hogehogeohogehoge
>ってなってるはずだから読み込んだデータを分離する必要あるんじゃない?

色々と試した結果、データ分離前まではできました。
分離させんの大変そうだなぁ。

137:nobodyさん
04/07/05 18:16
( ゚д゚)ポカーン

138:nobodyさん
04/07/05 18:49
>>137

ageてまで何が言いたいのかわからん。
いいあるなら方法教えてよ。

139:nobodyさん
04/07/05 20:15
教えて君ウザイ

140:いいあるなら
04/07/05 21:12
いいあるなら

141:138
04/07/05 21:38
>>139-140
   , -‐--、  ヽ∧∧∧ //  |
.  /////_ハ ヽ< 釣れた!> ハ
  レ//j け ,fjlリ / ∨∨V ヽ  h. ゚l;
 ハイイト、"ヮノハ     //   |::: j  。
  /⌒ヽヾ'リ、     //     ヾ、≦ '
. {   j`ー' ハ      // ヽ∧∧∧∧∧∧∨/
  k~'l   レヘ.   ,r'ス < 初めてなのに >
  | ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!>
.  l  \ `ー‐ゝ-〈/´   / ∨∨∨∨∨∨ヽ
  l     `ー-、___ノ
  ハ   ´ ̄` 〈/‐-、

142:nobodyさん
04/07/05 22:36
stdinから丸呑みしてファイルにでも保存してみろ。

143:138
04/07/05 23:42
>>142
またまた釣れた。

144:nobodyさん
04/07/06 08:43 LzoVUw8w
CでCGIは既に古典的なんだから
知らない人の手助けでもせんと
このスレの意味ないじゃん

145:nobodyさん
04/07/06 09:27
% man 2 read
% man 3 fread
% man 3 fgets

146:nobodyさん
04/07/06 10:28
ここは、そんな餌で俺がクマーなインターネッツですね

147:nobodyさん
04/07/06 11:39
プログラム板へ書き込んだのですが放置されました。。(涙)
マルチで申し訳ないですが再度書き込まさせていただきます。

この度RedHat7.3(①)からRedHat9(②)へ移行したのですが、
①で問題なく動作していたCGIが②の環境で一部動作しなくなりました。
//環境
①RedHat7.3
gcc-2.96-113
apache-1.3.27-2
②RedHat9
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さん
04/07/06 11:42
機種依存文字使うなヴォケ

149:147
04/07/06 11:50
書き忘れましたが、Cで作っているプログラムです。コンパイル問題なく通ります。
apacheのエラーログを見ると”premature end of script headers”と出ているので
どうもhtmlに出力時にCGIが死んでる見たいです。
同じ現象が出ている人も多いと勝手に思ってるのですが、私だけなんでしょうか??
ググっても perlのことばかりなんで・・・・

150:147
04/07/06 11:53
>>148
localtime(&lt);のことですか?
&を大文字で書かないと2ちゃんに書き込むときに
">"に変換されてしまうんで・・・


151:nobodyさん
04/07/06 12:03
なんだ、ネタだったのか…
釣られちゃったよ orz

152:nobodyさん
04/07/06 12:07 NBQAU1O/
CGIの出力でSSIを使いたいのですが
使えます?使ってる人いますか?


153:nobodyさん
04/07/06 12:19
(´-`).。oO(アホか・・・)

154:152
04/07/06 12:23 NBQAU1O/
>>153

なんで?なんでアホなの??
サーバーがパースしてくれないから絶対使えないの??

155:nobodyさん
04/07/06 12:25
そんな餌で俺がクマー(AA略

156:152
04/07/06 12:27 NBQAU1O/
マジな質問でも釣りとかいわれるスレなんだね・・・

157:nobodyさん
04/07/06 12:29
それ以前にスレ違い

158:152
04/07/06 12:33 NBQAU1O/
なんで?CのCGIでSSIを出力したいんだよ?
このスレジャン

159:nobodyさん
04/07/06 12:38
こいつはCのCGIで出力するhtmlについてもここで聞くのだろうな・・・

160:152
04/07/06 13:20 NBQAU1O/
>>159

知らないんだろ?w

161:nobodyさん
04/07/06 13:28
釣れますか?

162:152
04/07/06 13:30 NBQAU1O/
くだらない釣りすんなよ・・スレ汚しが・・・

163:nobodyさん
04/07/06 13:31
このスレ、なんか臭いな

164:152
04/07/06 13:34 NBQAU1O/
お前が臭くしたんだよ・・・

165:147
04/07/06 13:41
>>151さん
ネタじゃないんですよ。。本気で悩んでます。。

>>152さん
SSIを使いたいというのはよくわからんのですが
特定のHTMLの一部分に数値等を表示させたいということでいいんですか?

166:nobodyさん
04/07/06 14:01
localtime(<);

167:152
04/07/06 14:11 NBQAU1O/
>>165

<!--#include file="他のファイル.html" -->を使って他のhtml
ファイルを取り込んでブラウザーに出力できないかなって思ったんです。

SSIってhttpdがファイルをパースして結果を置き換えますよね・・・

なんで出力をパースさせればいいのかな??
CGIからの出力をパースさせるのはhttpdの設定(apacheなんでhttpd.conf)??

なんて考えてたんですけど実際はどうすればいいのかわからないので
質問してみたんです・・・・・



168:nobodyさん
04/07/06 14:28
SSIの基本を理解してないならくだ質スレへどうぞ

169:152
04/07/06 14:35 NBQAU1O/
>>168

はあ?どこがわかってねえっていうんだよボケ!
つーかどこが理解してないかいえねえだろ?
トリアエズくだらねえツッコミばっか入れてるキモイてめえはこんりんざいだまってろ
アホ。

170:nobodyさん
04/07/06 14:38
どうもならんな・・・
己の無知に気がついていない

171:152
04/07/06 14:45 NBQAU1O/
何もいわないで適当に批判すれば頭がよくみられるんだなこのスレでは・・・

172:nobodyさん
04/07/06 14:50
もう回答は得られないのだから好きに吠えていろ池沼

173:nobodyさん
04/07/06 15:00
おまいら、これでも見てモチツケ
URLリンク(www.sweetnote.com)
URLリンク(www.sweetnote.com)

174:152
04/07/06 15:03 NBQAU1O/
147みたいなまともな人もいるんだけど、
172みたいなどうしようもない負け犬がわんわん吠えると
とたんに堕スレになっちゃうな。


175:nobodyさん
04/07/06 15:19
>>173
見れないよう

176:147
04/07/06 15:45
>>152
あんまりあつくなっても・・・・
SSIうんぬんではなくて
Cでパースして出力すればできるのでは?

177:黒死犬 ◆EgxBlf8nvc
04/07/06 16:45
AddType

178:fff
04/07/06 16:50
>>SSI
URLリンク(httpd.apache.org)
という感じで、"You can't."だと。しかし、
This is a feature The Apache Group hopes to add in the next major release after 1.3.
で、付加される機能かも知れない。知らないが。

179:nobodyさん
04/07/06 16:56
>>147
とりあえずprintfとかでヘッダーを出力した後にfflushしておけばそのエラーは出ないかも。

180:179
04/07/06 17:08
というか、その前に落ちているのか。
おそらく問題は他にある。

181:黒死犬(魚かも) ◆EgxBlf8nvc
04/07/06 17:18
ヘッダにいらんもん出力してるって分かってんだから
プログラムが出力してる内容を見れば良いだけじゃない・・・

182:nobodyさん
04/07/06 17:19
>>181
ヘッダを出力する前に落ちているだけだろ。馬鹿かお前は。

183:黒死犬(魚かも) ◆EgxBlf8nvc
04/07/06 17:21
いやいや、違いますよ
>>149
を読んでください

184:黒死犬(魚かも) ◆EgxBlf8nvc
04/07/06 17:22
すまそ誤爆った
でしゃばってすまぬ

185:nobodyさん
04/07/06 17:22
落ちてヘッダを出力していないから「premature end of script headers」になるんだよ。


186:nobodyさん
04/07/06 17:32
CGIが出力するhtmlにSSIを書いても動きません。

はい終了。

方法はあるけど152みたいなやつには教えん。

187:nobodyさん
04/07/06 17:40
少なくともapache 2.0.50で動くことは今確認できた
でも完全にスレ違いの話題だな

>>152はこんなところで煽ってる暇があったら自分で調べろよヴォケ

188:147
04/07/06 17:58
179さん、黒死犬(魚かも)さん、187さん

アドバイスありがとうございます。

プログラムの内容は、
①入力フォームのhtmlの数値を取り込み計算
②計算結果画面のhtmlに計算結果数値を埋め込んでいく

という一般的なものなんです。
Time関数を使用している箇所を除くと表示できるのですが。。
187さんの言うとおりapacheの問題かもしれませんね。2.0.50で試してみます。
スレ違いで申し訳ありませんでした。

189:nobodyさん
04/07/06 18:02
>>188

シェル上で擬似的なパラメータを渡してテストとかしないの?
>Time関数を使用している箇所を除くと表示できるのですが。。
そこまでわかっているのなら簡単なサンプルでデバッガのお世話
になるとか?

190:147
04/07/06 18:11
>>189

うっ・・おっしゃるとおりです。。
問題の部分のみで再度チェックいたします。

191:nobodyさん
04/07/06 18:19
>>188
>>187はSSIのことね
CGIが出力したSSIが動くということ

>>147>>189タンの書いた通り
まずコマンドラインから実行できるかどうかチェックすべき

あとは、ヘッダを出力する前に落ちているのであれば
原始的な方法だけど、ヘッダを出力する場所を変えてみるとか
最初にヘッダを出力した場合動くかどうか

192:nobodyさん
04/07/06 18:21
>>188
機種依存文字を使うなと前にも言われただろ

193:nobodyさん
04/07/06 20:57
>>169
こんな暴言吐く人に回答する義理も無いわけで。
漏れはスルーしてたけど、ここの住民さんは意外と優しいのだな・・・。

194:152
04/07/07 08:18 Zb/loxvw
>>176

そうですよね・・・SSIにこだわる理由はないですね・・・
冷静に考えたらオーバーヘットもあるしSSIを出力する意味ないですよね。
素直にCでパースします。ありがとうございました。

>>俺様に暴言を吐いた有象無象ども

おめえら使えねえんだよ、アホ。
たいした知識でもねえのに出し惜しみするチンカスは一生すっこんでろボケ。

195:nobodyさん
04/07/07 09:28
なんだ、結局SSIで動かすことができなかったんだな(プ

196:152
04/07/07 10:55 Zb/loxvw
>>195

出来たけどお前には教えない(プ

197:nobodyさん
04/07/07 16:01
【厨房のための煽り煽られ講座】

言い返せないけど負けは認めたくない
  → ( ´,_ゝ`)プッ
  → 無知白痴は黙ってろ
  → 知能障害をおこす
  → 出来たけどお前には教えない(プ  ←>>152

198:nobodyさん
04/07/08 02:16
まぁ夏だからしょうがないのか・・・

199:nobodyさん
04/07/08 04:04
暑さはヒトをダメにする

200:nobodyさん
04/07/08 10:26 073/5w7j
そもそも今時CでCGIというのが不自然なんだから
変なのが湧いてくるのは仕方がない。

Cの入門者用に掲示板程度のサンプルを提供するのは意味があるかもしれんが
それ以上の高機能なものは大人しくperlかPHPで作ればいいんです。
CでCGIを開発出来ても誰も誉めてくれないし一銭にもならないのではないか?

          ,.. -―-- |
       ,.' ´ ``´  ̄ ``. .|
     ,. '´   ,   、   .|
   /   ,  l  i  ヽ \ .|
   / ./ /,'  !ヽ ヽ  ヽ. ヽ.|
  / / ./ l _⊥ヽ‐ヽ、'T''| |って書き込んだらC信者が何人か釣れるのカナ?
  {{ |  | レ'! ヽ\_\,,-,‐-.|
  l l l  | | |/Tハ    |::f;;}||
   !ヽN |、 | !` l:リ}     ‐'‐'.| 
      `!ヽN ヽ" `ー    .| 
      | | | `i - ..,.. '´''.|
        ! ! l,-┴/ハ   |
       ヽ N,. '´,.=El=、、/|

201:nobodyさん
04/07/08 13:45
【厨房のための煽り煽られ講座】

言い返せないけど負けは認めたくない
  → ( ´,_ゝ`)プッ
  → 無知白痴は黙ってろ
  → 知能障害をおこす
  → 出来たけどお前には教えない(プ  ←>>152
→ 釣りを始める ←>>200(>>152)

202:nobodyさん
04/07/08 19:05
C++っぽく・・・

bool urldecode(std::string &s){ //省略。}
struct form_pair
{
string name;
string value;
};
istream &operator >>(istream &is,form_pair &fp)
{
string s;
getline(is,s,'&');
if(is.fail() || is.bad())
return is;
string::size_type pos = s.find('=');
if(pos == string::npos)
{
fp.name = s;
fp.value = "";
}
else
{
fp.name = s.substr(0,pos);
fp.value = s.substr(pos+1,s.length()-(pos+1));
}
if(!(urldecode(fp.name) && urldecode(fp.value)))
{
is.setstate(ios::failbit);
}
return is;
}
typedef istream_iterator<form_pair> urldecode_iterator;

203:nobodyさん
04/07/08 20:14
( ゚д゚)ポカーン

204:nobodyさん
04/07/08 21:03
このスレもうだめぽ゚・(ノД`)・゚・。

205:nobodyさん
04/07/09 13:27
なんか、もう、ぬるぽだな

206:nobodyさん
04/07/11 02:25
>>205
ガッ

207:名無しさん@そうだ選挙に行こう
04/07/11 17:20 8T5rEfNa
URLリンク(puppy.cute.tc)の、
ReportBoardのCGIは何処のCGIですか?
似たCGIでもいいです。
わかる人がいたら教えてください。

208:名無しさん@そうだ選挙に行こう
04/07/11 17:34
>>207
板違い

209:nobodyさん
04/07/18 23:47
保守

210:C言語がイイよね?
04/07/28 23:38 UZklF3eT
CでURLエンコードするコードを考えてマス
文字列の中で2バイト文字だけ判別して
判別した文字を16進数にキャストしてやれば
出来ると思うのですが、具体的なコードが浮んできません。
ウマイコードあったら参考にさせてください。

211:nobodyさん
04/07/29 05:58
>>210
ここ↓の
URLリンク(www-cms.phys.s.u-tokyo.ac.jp)
「FORMデータの処理」「漢字コードの処理」を参考にしてまつよ。
他にも検索すれば出てくると思う。

212:GROAD ◆4C1MajRa36
04/07/31 11:59
ぬるぽ

213:nobodyさん
04/08/01 14:53
>>212
ガッ

214:nobodyさん
04/08/04 20:03
C++( string 使いたいだけで )でCGIを組んでいましたが、
エラーログに
malformed header from script. Bad header=\x1f\x8b\b: /home/****/hoge.cgi
とでます。"Content-type: text/html; charset=EUC-JP\n"
を出力する前に何も出力関係の関数は使っていません。
マシン負荷などに関係なくでます。
だいたいは正常に動作していますが、時たま程度のエラーですが気になります。

原因が解る方が居たら、お力を御貸し願いたい。
apache1.3.27、 gcc 2.95.2.1です。

215:nobodyさん
04/08/05 18:01
ヘッダ後の改行は2回だがまさか…違うよなぁ。

216:nobodyさん
04/08/06 00:00
で、当然、"\x1f\x8b"が何なのかはぐぐってみたんだよな?

217:nobodyさん
04/08/08 15:16
>>214 の自己レス

gzipをpopenで出力してた。
mod_gzipにしたら解決しました。

218:nobodyさん
04/08/08 20:39
>>217
解決おめ

219:nobodyさん
04/08/11 23:44
Fast-CGIを利用すると、更に速くなるのかな。

220:nobodyさん
04/08/11 23:57
むしろ使わないとPHPとかmod_perlより遅い。

221:nobodyさん
04/08/12 14:52 PHf7JWmC
(・∀・)renice!

222:nobodyさん
04/08/14 15:00 inflZLdK
>>220

まじで?なんでえ?

223:nobodyさん
04/08/14 17:15
プロセス起動コスト

224:nobodyさん
04/08/14 21:20
modではないPerlとかRubyよりは早い
コードがへたれだとそれよりも遅い

225:nobodyさん
04/08/14 21:23
( ゚д゚)ポカーン

226:nobodyさん
04/08/14 21:28
言語の違いにおける速さの差は線形だけど、
アルゴリズムの差は簡単に対数以上になっちゃうからね

227:nobodyさん
04/08/14 21:41
回るのは遅いけど何か書くと即効でレスが返ってくるんだよなここ
見てる奴は多いのかな

228:nobodyさん
04/08/14 21:42
粘着がいるだけだろ

229:nobodyさん
04/08/15 11:26
HPでCのCGIを使いたいのですが、
コンパイル時のコマンドは
gcc -o test.cgi test.c
でよいのでしょうか?

230:nobodyさん
04/08/15 11:55
>>229
HP-UXだとccだろ。


231:nobodyさん
04/08/15 12:15
>>229-230
ワラタ

232:229
04/08/15 12:39
HPはホームページの略で使いましたが…紛らわしいですね。
ccは使えないんですが…

233:229
04/08/15 13:24
とりあえず
gcc -o test.cgi test.c
でコンパイルして
テストしてみたのですが、エラーが出てしまいます。

パーミッションは755でcgi-binディレクトリにも入っているけど
エラー500が出てしまいます。

また、ソースも問題ないと思うのですが…

#include <stdio.h>

int main(void)
{
printf("Content-type: text/html\n\n");
printf("Hello");

return 0;
}
原因は何でしょうか?

234:nobodyさん
04/08/15 13:35
( ゚д゚)ポカーン

235:nobodyさん
04/08/15 14:55
エラーメッセージも書いてない香具師に釣られるなよ

236:nobodyさん
04/08/15 14:59
>>235
Internal Server Errorと言う答えになんの意味があるというのだ。

237:nobodyさん
04/08/15 15:00
\n -> \r\n\r\n

238:nobodyさん
04/08/15 15:00
Windowsかよ

239:nobodyさん
04/08/15 15:02
サーバと違うOSでコンパイルしてるんじゃないのか?
テキストモードでうぷしたりしてるんじゃないのか?
sshで接続してスタンドアロンで動くかどうかまず確かめろよ。
あとは考えるのマンドクセ。

240:229
04/08/15 15:04
確かサーバー側はLINUXだったので違うOSですね。


241:nobodyさん
04/08/15 15:10
サーバーでコンパイルするかクロスコンパイルでぐぐってね。
ばいばい。

242:nobodyさん
04/08/15 16:05
>>240
で、コンパイルマシンはHP-UXなのか?

243:229
04/08/15 23:43
コンパイルマシンはWINDOWSです…

244:nobodyさん
04/08/16 00:08
窓のアプリケーションがLinuxで動くわけなかろーがこのバカチンがー

マジレスすると、お前には無理なので諦めろ

245:nobodyさん
04/08/16 00:14
おまいら釣られすぎ

246:nobodyさん
04/08/16 00:18
>>244
Perlと同じ感覚なんじゃないかと

247:229
04/08/16 00:28
もうちょっと勉強してからやります。
Perlと同じような物だと思ってました…

248:nobodyさん
04/08/16 06:26
>>247
>もうちょっと勉強してからやります。
>Perlと同じような物だと思ってました…

プロの釣り師だな

249:nobodyさん
04/08/20 02:03
>>229 >>247
マジ釣られしてやろう。スクリプト言語は文字ベースの互換性があるが、
コンパイル言語はバイナリベースでの互換性を確保しなければならん。
よって、互換プラットホーム間でなければ動かん。
もっと勉強汁。

250:nobodyさん
04/08/21 11:33


251:nobodyさん
04/08/21 12:59
WindowsでGCC使ってクロスコンパイルかけたのかもしれないじゃないか。
100%ないけど。

252:nobodyさん
04/08/21 16:06
gccを使っているのは確かだ。

253:nobodyさん
04/08/22 23:49 OO5ezOdW
でもいかりや長介が逝っちゃったことに
変わりはない。

無念!

254:nobodyさん
04/08/23 09:54
>>253
コスモを感じる

255:nobodyさん
04/08/24 12:54
UTF-8の掲示板作ったら、出力サイズが2chに比べて2~3倍になったorz
2chのhtmlを保存してUTF-8に変換してもまだ1.5倍。
マークアップしつこすぎたかな…。

<div class="res">
 <div class="data">
  <h3 class="name"><span class="number">5</span> <span class="label">投稿者</span> <a href="mailto:tokimushi@yahoo.co.jp" title="この投稿者にメールを送る">名前</a></h3>
  <ul>
   <li class="time"><span class="label">投稿時刻</span> 2004年08月07日(土)17時54分04秒</li>
   <li class="url"><a href="URLリンク(www.w3.org)" title="この投稿者のウェブサイトへ">HOME</a></li>
  </ul>
 </div>
 <div class="comment c3 kuma"><p>なんだかんだ</p></div>
</div>

256:255
04/08/24 12:56
誤爆すいません

257:nobodyさん
04/08/24 13:22
>>255
UTF-8の掲示板は重いから嫌

258:nobodyさん
04/08/30 09:03


259:nobodyさん
04/09/07 13:19


260:nobodyさん
04/09/07 22:17
ネタがありませんなあ

261:nobodyさん
04/09/08 00:54
こっちは微妙に伸びとる
スレリンク(php板)


262:nobodyさん
04/09/08 01:07
スレリンク(php板)

263:nobodyさん
04/09/26 01:20:15
遅レス
>>255
うほ、いいdiv厨

264:nobodyさん
04/09/27 13:16:42
カウンタを作ってるのですが
日にちがかわったら今日のカウントを昨日のカウントへコピーして
今日のカウントを初期化するIF分がわかりません
教えてください

265:nobodyさん
04/09/27 14:56:10
(  ゚,_ゝ゚)バカジャネーノ

266:nobodyさん
04/09/27 16:58:41
>>264
お前プログラム向いてないよ。サンプル漁る位しれ。

267:nobodyさん
04/09/27 21:25:52 yrxaF59A
釣れた!初めてなのに釣れちゃった!(AA略

268:nobodyさん
04/09/27 23:08:37
こんな活きの無い魚でそんなに喜ぶなよ

269:nobodyさん
04/10/01 15:04:26
活きの無い

( ´,_ゝ`)プッ

270:nobodyさん
04/10/01 16:56:12
4日も経ってからsageで煽るなって

271:nobodyさん
04/10/01 17:46:36 qscnRJvR
あのーPHPがアパッチのモジュールで動作するから早いって聞いたんですよ・・・

Cで書いてもCGIとして実行してたらプロセスとして実行するから結構負荷がかかっちゃいますかね・・・
でもCGI使わずにモジュールで動作するようにすればCの方が早いんですかね・・・

PHPの開発は日本人が多いから日本国内ではPHPの方が早いってことになってるんですかね・・・
それともベンチマークテストやったら実際に早いんすかね・・・

そこらへんをすっきり説明してくださる方おりませんか?

272:nobodyさん
04/10/01 17:48:41
なんか不勉強で人頼みな奴ほど速度を気にするように思うんだけど、
これってマーフィーの法則ですか。

273:nobodyさん
04/10/01 17:52:03 qscnRJvR
はいーわたしはマーフィーの法則にしたがって行動しております。

補足なんですけど~CGIもモジュールですよね~
PHPのそれはどんなモジュールなんですかね~
PHPより高速になるCGIモジュールってありますかあ?

274:nobodyさん
04/10/01 17:53:56
裏が取れないという点ではそうかも
背景としては、本来速度を気にする人ってのはハードなシステムを組まされてる人なんだけど、
この手の輩は四六時中ボトルネックを探してるので、何すれば早くなるかとか、早いってのは
どういうことかとか正攻法で理解してて、あんま質問を垂れ流さないってのがあるんだと思う

ところで最近はチューンするにしてもApacheのモジュールにしちゃうこと減りましたね
ってこのネタもスレ違いかorz

275:nobodyさん
04/10/01 17:54:54
>273
うっぜ
死ねカス

276:nobodyさん
04/10/01 18:04:01 qscnRJvR
あれへんだなあ・・

何言ってるかわかんなくなってきちゃった・・・・
でもさあPHPってHTMLに記述するスクリプト言語ですよねェ~

それをパースして実行するんですからあきらかにコンパイルしたCの
プログラムの方が早そうに思えるんですけどねエエ・・・・

277:nobodyさん
04/10/01 18:07:17 qscnRJvR
>>275

ウゼェ じゃないんですかああ?
うっぜってどこの方言ですかアア??

やぱありCGIでPHPを使った方がいいんですかねえ・・・
どうなんですかねええ
優秀なみなさ~~ん

278:nobodyさん
04/10/01 18:09:14
phpをネタに持ってきた時点で脳が古い。
センスもなし。

279:nobodyさん
04/10/01 18:18:02 qscnRJvR
>>272

あ~ちなみにおくれつっこみですけどお~~
それはマーフィーの法則とはいいませんよ~
それは272さんとその仲間達(272本人かも・・)の法則ですよ~~

それとも次ぎのマーフィーの法則に載るんですかあ~~
それともマーフィーの法則っていっとけばカッコイイと思ったんですかあ~

マーフィーの法則をネタに持ってきた時点で脳が古いですよ~
扇子あげましょうか?

280:nobodyさん
04/10/01 18:23:01
>>274
2chでのやりとりなんてほとんどマーフィーの法則に嵌ってるだろ。

281:nobodyさん
04/10/01 18:29:10
>>278
昔はPHPなら速度比較と処理負荷だけで飯五杯はいけたんだが・・・
もはや残ってる部分といえばコードキャッシュネタくらいか
Cでおかずになるネタは・・・このスレの伸びが何かを語っているな・・・

282:nobodyさん
04/10/01 18:31:49
>>280
それ自体もそうでつか

283:nobodyさん
04/10/01 18:35:57
たいていがマーフィーの法則に当てはまることが法則ってのじゃ利用価値ないじゃん。
どうでもいいけど昔、マ板かどっかにCのコーディングにありがちな「マーCの法則」スレとか無かったっけ。
田代がまだ只の人だったころの話なのだが。

284:nobodyさん
04/10/01 18:48:52
>>283
そりゃ田代本人が出した本のタイトルじゃないのかw
PHPは旬過ぎたけど user ml がまだまだアツイぜ

285:nobodyさん
04/10/01 19:01:49
スレリンク(news板)
反応が薄いな

286:nobodyさん
04/10/19 10:52:37 eOcRyqWU
Apache2のWinネイティブなCGIでActiveXEXEと
やりとりってできないんでしょうか?
CGIを普通に起動する分にはちゃんとできてるのですが・・・
いちおうApacheのサービスは「デスクトップとの対話を許可」してあります

287:nobodyさん
04/10/21 10:38:39 GNUlgmPe
cとphp

おれはcの方が早いと信じたい!

288:nobodyさん
04/10/21 23:49:17
>>286
なにがやりたいのかいまいち不明

289:nobodyさん
04/10/24 21:41:04
アルゴリズムによってはCの方が早くなるんじゃないだろうか

url文字列のほうは良いんだがmultipart/form-dataのクラスをどういう構造にしたら分りやすいかちょっと悩む
ただの文字列はoperator[]でファイルのときはファイルの情報を持ったオブジェクトを返すでいいかな

290:nobodyさん
04/10/24 21:57:41
車輪の再開発してないで既存のライブラリ使えよ

291:nobodyさん
04/10/27 11:54:00
単純で良い物が無い

292:nobodyさん
04/10/27 23:05:12
単純でよければ自作すればいいじゃーん

293:nobodyさん
04/10/27 23:06:32
だからしてるんじゃないか

294:nobodyさん
04/10/28 06:15:52
このスレはドリフだな

295:nobodyさん
04/10/30 02:13:13
>>289
自分が使いやすい/使いたいように作れば、それで良いと思うよ

296:nobodyさん
04/10/30 02:26:46
C++でCGI作ろうと思ったけど全然ライブラリが揃って無くて駄目だね。
Perlならcpanでサクサク拾えるのに。

297:nobodyさん
04/11/02 10:30:42
>>296
Cのライブラリを使えばいいじゃん

298:nobodyさん
04/11/30 12:32:26 q4147YdE
レスポンスがあるかわかりませんが..

POSTで受け取った文字が化けるのでiconv使って変換をと思ったんですが

iconv_t icv_hook;
char *inp;
char *outp;
size_t ret_val;
size_t in_buf_left;

memset(out_buf, 0, BUFSIZ);
in_buf_left = strlen(in_buf);
out_buf_left = BUFSIZ;

ret_val = iconv(icv_hook, inp, in_buf_left, outp, out_buf_left);
警告: 互換性のないポインタ型からの引数 2 個の `iconv' を渡しますです
警告: 引数 3 個の `iconv' を渡しますにより、キャストなしで整数からポインタを作りました
警告: 互換性のないポインタ型からの引数 4 個の `iconv' を渡しますです
警告: 引数 5 個の `iconv' を渡しますにより、キャストなしで整数からポインタを作りました


URLリンク(docs.sun.com)
これの通りにしたのに
どこがおかしいのでしょうか?

299:nobodyさん
04/11/30 13:42:39
>>298
char *とchar **は違う。

300:nobodyさん
04/11/30 19:18:07 q4147YdE
どうもありがとうございます。

char *とchar **は違うとはわかりますが、ではどこをどう直せばよいのでしょうか?
宣言時にchar**とやったり、キャストを入れてみてもやはり警告が出ます。

コンパイルは通りますが、実行時に
iconv()を呼ぶときに必ず
「セグメンテーション違反です
のエラーが出ます

301:nobodyさん
04/11/30 19:56:28
>>300
const char *inp;
char *outp;
(中略)
ret_val = iconv(icv_hook, &inp, in_buf_left, &outp, out_buf_left);

302:nobodyさん
04/11/30 20:09:48
>>301

char *inp;
char *outp;
ret_val = iconv(icv_hook, &inp, &in_buf_left, &outp, &out_buf_left);

なぜか指示どうりではだめでしたがこうやったら正しく実行できたので
とりあえず報告します。


303:nobodyさん
04/11/30 20:20:55
>>302
初めて使う関数は、きっちりmanを見たほうがいいよ。
副作用のこともあるし。

URLリンク(www.linux.or.jp)
これはLinuxのだけど。

304:nobodyさん
04/12/03 15:18:44
C/C++ CGIで、最初に1回だけユーザ認証をやって、
その後同一の実行ファイル上で、ログイン状態を維持する

これを実現するための考え方と、参考になるソースを教えてください。


305:nobodyさん
04/12/03 22:30:06
>>304
同一の実行ファイル上ってのがよくわからない。
言葉通りに解釈すると、Cookieにそのファイルのpathを設定すればいいだけだけど。


306:nobodyさん
04/12/04 00:34:37
PHPのセッション管理のような仕組みを作っちゃえば楽なんだろうけど、作るのは楽じゃない。

307:nobodyさん
04/12/05 06:35:51
>>304

>>305に1票、もしオレがやるなら、やっぱ Cookie使う。
セッション管理より楽だし。
厳密性を求めるのは厳しいけど、ユーザ認証が目的なら、
同じブラウザを使ったかどうか分かる Cookieは充分有効な手段でしょ。

308:nobodyさん
04/12/05 06:40:37 4YEMHaP5
>>304
ソースくらい検索してほしいが、オレのブックマークにこんなのが入っていたので参考までに。
URLリンク(sometime.minidns.net)

309:nobodyさん
04/12/05 06:41:11
sageるつもりだったがついうっかり・・・ OTL

310:305
04/12/05 10:05:05
> C/C++ CGIで、最初に1回だけユーザ認証をやって、
> その後同一の実行ファイル上で、ログイン状態を維持する

通常、CGIプログラムはリクエスト毎に終了してしまうので、
プログラム内の変数にログイン状態のデータを維持する事は出来ない。

そこで、データの永続化。
具体的には、ファイル、データベース、共有メモリでもなんでもいいので、
CGIプログラムが終了してもデータが残るような媒体にデータを記録する事になる。

その際、Process IDやIP address等からユニークなIDを作成し、
このIDをキーとしてログイン状態などの情報を記録する。
同時に、このIDをセッションIDとしてブラウザのCookieに設定させることで、
認証を済ませたユーザかどうかを確認する。これがセッション管理。

一度認証を済ませたあとは、
ブラウザが送ってくるCookie(CGIの場合は環境変数などに設定される)
のセッションIDと一致するキーのデータを引き出し、そのログイン状態を確認すれば良い。


>>306
簡単なセッション管理の実装で、
セッション毎に./session/$SESSION_ID$ ファイルを作成するとかはどうだろう。

>>307
>>305は、一応、セッション管理を前提に書いてました。
"同じ実行ファイルの上で"が同一URL上でという意味ならCookieのpath設定だけで済むかと思ったので。


311:nobodyさん
04/12/05 11:23:18
URLリンク(sometime.minidns.net)

312:nobodyさん
04/12/05 16:32:23
普通にクッキーデコーダクラス作ればいいだけの話じゃん。
おいらはurl_decodeクラスとそこからget,post,cookieの継承クラス作ったけど。
データ構造は自作二分木

313:nobodyさん
04/12/05 17:12:51
そういう手続き型のはモジュールでやったほうがいいと思われ

314:nobodyさん
04/12/05 17:17:25
>>313
そうか?
ヘンテコな抽象化だなとは思うが、リクエストとかユーザステートみたいな
他の設計クラスとかち合わなきゃどうでもよくね。
クラス=メソッドってOOとしてはNGだけど、Cppなんだし。

315:nobodyさん
04/12/05 17:28:03
C++はオブジェクトをとるかデータ構造をとるかでよく迷わされる
Cでやることも考えるなら、そう迷うこともないけど

316:nobodyさん
04/12/05 17:30:13
おいおいLispスレが立ったぞ。ドンケツ脱出だな。

317:nobodyさん
04/12/05 18:46:29
>>316
ACLかよw
そりゃ間違いなく脱出だが

318:304
04/12/07 09:58:50
アドバイスありがとうございます。
色々試してみます。


319:nobodyさん
04/12/25 01:16:54
みんなUTFとか使ってる?

320:nobodyさん
05/01/19 15:43:33
((void *)0)

321:nobodyさん
05/01/21 13:43:21 Z6ezIjZ/
ばかばかしい質問かもしれないんですが
bluequartz上でC/C++ cgiがどうして動かせなくて困ってます。

gcc バージョン 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
もちろんapacheは動いています Server version: Apache/2.0.51

コンパイルしたファイル(xxx.cgi)はコマンドラインからは実行できるのですが、
これをブラウザから見ようとすると、 「xxx.cgi ファイルを保存しますか?」
となってしまいます。
どこがおかしいのでしょうか

何か見落としているかも知れないので指摘いただきたいです


322:nobodyさん
05/01/21 15:52:04
>>321
content-typeが変なのになってるんじゃないでしょうか。

323:321
05/01/21 16:58:47
普通に
Content-type: text/html
です。

テスト用に時刻表示するやつを作ってみましたが
以下のテキストを吐き出すだけです。
Content-type: text/html

<html>
Fri Jan 21 16:53:21 2005
</html>

これもブラウザから見ようとすると
やっぱりファイルを保存しますか?となってます


324:nobodyさん
05/01/21 17:39:21
>>323
保存したファイルの中身は?

325:321
05/01/21 18:10:27
>>324
保存したファイルの中身を見てみましたが実行用のバイナリファイル
そのものだと思います。
出力結果とかが保存されてるわけではない(と思う)です



326:nobodyさん
05/01/21 18:44:53
AddHandlerは?

327:321
05/01/21 18:56:11
今のところこうなってます

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
.....
AddHandler cgi-script .cgi
AddHandler cgi-script .pl



328:nobodyさん
05/01/21 22:24:50
>>321
どっちかと言うと C/C++ に関する問題ではないような。
だってコマンドラインから実効出来るという事は、「Cプログラム」としては正しいわけだろ。
たぶん Apache のディレクティブがきちんと設定されてないのでは?
CGI 実行ディレクトリについて、Options +ExecCGI とかやってる?

ちなみにウチのディレクティブは、CGI 関連はこんな感じ(Win32/Apache 2.0)。

LoadModule cgi_module modules/mod_cgi.so

ScriptAlias /cgi-bin/ 実際のディレクトリ

<Directory "実際のディレクトリ">
AllowOverride None
Options +ExecCGI
Order Allow,deny
Allow from all
</Directory>

AddHandler cgi-script .cgi .pl

設定してからだいぶ経つので細かい意味は忘れてしまった・・・ウチも色んなトコ見て
コピペを繰り返したので、検索しまくってガンガッてほしい。


329:nobodyさん
05/01/22 07:40:07
>>327
Perl CGIは実行できてるんだよね。

330:321
05/01/22 11:24:45
すみません
今確認してみたらPerlCGIも実行できてませんでした...



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

/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

332:nobodyさん
05/01/22 13:34:34
あるいはユーザディレクトリなら別の部分で設定しなきゃならんよ。

333:nobodyさん
05/01/25 07:56:51 hWOf15Pd
>>304さんに便乗して質問です。
ログイン情報を記録する方法はわかったんですが、
クライアントが適切なログオフ処理をしなかったらセッション管理用のファイルは残りますよね?
例えば、クライアントがブラウザを閉じたらサーバ側で勝手にログオフ処理、なんてことは出来ないでしょうか?

334:nobodyさん
05/01/25 08:11:21
絶対無理っしょ。
時間制限でタイムアウトするくらい。

335:nobodyさん
05/01/25 09:11:15
普通は>>334の方法でやるね。

336:333
05/01/25 10:01:05
わかりました。一時間リクエストがなかったらログオフするようにしたいと思います。
ありがとうございました。

337:nobodyさん
05/01/25 16:55:53
クッキー使えばええやん

338:nobodyさん
05/01/26 09:08:53
>>337
どうやって?
クッキーつかってもクライアントがブラウザ閉じたかなんてサーバー側では
判らんと思うが?

339:nobodyさん
05/01/26 15:10:15
有効期限を過去に設定すればブラウザを終了させた時点でクッキーが消える。

340:nobodyさん
05/01/26 15:17:37
>>339
だから?

341:nobodyさん
05/01/26 15:48:12
>>340
少しは頭を働かせたら?

342:nobodyさん
05/01/26 16:06:10
>>341
お前が一番頭が働いていないようだが

343:nobodyさん
05/01/26 16:11:38 /NT/JEVZ
>>339
クッキーは消えてもサーバのセッションファイルは残るんだよ。
それをどうすればいいかを考えてるの。
ちなみにPHPでは
session.gc_maxlifetime = 1440
とかで時間を指定してガベージコレクションしてる。


344:nobodyさん
05/01/26 16:26:34
>>339
消えても次にアクセスがあった時にクッキーがあるかどうかの
判断に利用できる程度だろ。
そういう話をしてるんじゃないの。

345:nobodyさん
05/01/26 16:43:31
337が言っているのはセッションを使わずに、という意味だと思うが。

346:nobodyさん
05/01/26 17:01:46
>>345
そうか
>>337言葉が足りないんだよ

347:nobodyさん
05/01/26 17:07:30
>>345
だとしても的外れには違いない。

348:nobodyさん
05/01/26 17:10:17
>>346
確かに。

349:333
05/01/27 00:23:16
なんか種を蒔いちゃったみたいですいません…
自分としてはユーザ毎にデータファイルを必要とするプログラム書こうと思うんで
やっぱりタイムアウト処理になると思います


350:nobodyさん
05/01/27 12:24:39
当分はこのスレ下がるばかりか・・

351:nobodyさん
05/01/27 13:55:33
てかもはやCとかC++の話じゃなくてCGI一般の話ジャン

352:nobodyさん
05/01/29 01:15:48
すっかりCGIの話なのでアレだが、
Flash埋め込んでSocket通信させるってのはどうよ。
>ブラウザを閉じたらチェック

353:nobodyさん
05/02/15 23:46:08
cgiでscanf使えますか?

354:nobodyさん
05/02/17 07:25:27 27dZ6TGB
質問させて下さい。
フォームから受け取った値をgetcharで読み込んでいるんですが、
「 , 」が%2Cになってしまいます。どうすればいいでしょうか?

355:nobodyさん
05/02/17 08:36:36
>>354
%2Cを , に変換すればいい

356:354
05/02/17 11:16:54
>>355
ありがとうございました。
URLエンコードという言葉を今日はじめて知りました。。。

357:nobodyさん
05/02/18 23:50:55
>>353
標準入力に対するものだから、使える事は使えると思う。
が、入力書式が CGI とは合致しないわけだから、>>354がトライしているように、
getchar とか使って URL エンコードを自前 or ライブラリでやる方が
モアベターだと思う。

358:nobodyさん
05/02/20 17:03:47
scanfなんてBOF問題バリバリの関数を使うなよ…

359:nobodyさん
05/02/20 20:42:33
ろくに知識がない奴ほど↑みたいな書き込みをするね。

360:nobodyさん
05/02/21 11:04:26
>>358
問題を理解した上で、自分の目的を満たすにはこれが良い、と思ったんなら、
どんどん使えば良い。と思うぞ。

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

なんて言わないべ?フードプロセッサー使ったって良いんだけどさw

361:nobodyさん
05/04/23 18:11:42
質問です
今までPerl,PHP等やってきて最近C言語でCGIスクリプト作成をはじめましたが、排他処理は一般的にはどの手法を使いますか?
やはりフォルダを作成する方法ですか?

362:nobodyさん
05/04/24 21:13:21 WkqhPVlv
VCでHelloWorldのテストCGIを作ったところ、111kBでした。
同じくLSICでコンパイルすると17kBでした。(500で動きませんでしたが。)

なぜこんなにサイズの差があるのですか?もっと減らす方法はありませんか?

363:nobodyさん
05/04/25 00:23:01
>>362
MS-DOSとWin32の違い

364:nobodyさん
05/04/27 01:22:34
>>362
VC++のほうがデバッグモードになってないか?

365:nobodyさん
05/04/27 10:44:49
>>362
やってみたら
Debugで160k
Releaseで40k


366:362
05/04/27 21:39:50
うわ、本当だ…
お騒がせしました

367:nobodyさん
05/05/19 21:48:26 GAjOQJM0
今晩は、スレで度々話題になってるようですが、いまいちわからないので質問させてください。画像ファイルの質問です。
<input type="file">でjpegやGIF、BMP画像をpostで送信した場合、標準入力に他の文字列等と同様name=に画像ファイルデータ
が送られているのでしょうか?その画像ファイルはどの様に処理したらいいのでしょうか?ご教授ください

368:nobodyさん
05/05/19 22:14:38 EjA+9pug
URLリンク(z57.2)<)?-121-74.?pp.??kw?k.ne.?pうへへ。

369: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文が出力されるだけなんですが・・・
制御文と認識させるためには、お呪い前処理が必要なんでしょうか?


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