- ベストアンサー
C言語のCGIが編集できません
フリー配布のC言語で書かれたチャットのCGIをダウンロードしたのですが、エディタで開くと テキスト中にNULL文字が含まれています! この文字はメモ帳++で強制的に削除されます。 と警告がでます。そして開くと文字化けをしたようになってしまいます。 そのままの状態でアップロードすると、404エラーが出ます。 別のプログラムでCGIのエラーチェックをすると、 Unrecognized character \x7F at (eval 1) line 1. と出るのですが、さっぱりわかりません・・・。 恥ずかしいのですがC言語の知識が全くないので、C言語についてもアドバイスをいただけるととても嬉しいです。
- no05
- お礼率29% (26/89)
- CGI
- 回答数4
- ありがとう数0
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
コンパイルの方法はソース付属のドキュメントを見てください。ライブラリの依存関係などがあるので建前としては『一般論なんか無い』ですが、まぁ多くは作者が親切なおかげで ./configure make一発!ですけれど。 UNIX系の特徴というか文化はソースコード互換で、“バイナリ互換ではありません”。 telnetやsshが使えないサーバーではcのcgiはまず使えないと思っていいです。
その他の回答 (3)
- entree
- ベストアンサー率55% (405/735)
コンパイルの仕方はアプリケーションによっても異なります。C言語を知らない人にとっては、UNIXを自在に触れる人でもコンパイルができない人もいるくらいです。 マニュアルを読んで理解できないようであれば諦めるのが無難な選択だと思います。逆に言えばそれだけ知識が必要ということです。 あと、コンパイルするにはシェルが解放されている必要があります。つまり、WEBサーバにTelnet接続が許可されていることが前提となります。
- parapa
- ベストアンサー率15% (42/273)
>お手数でなければコンパイルの仕方を教えていただけないでしょうか? あなたが使用しているサーバと同じOSを自分のローカル環境にインストールする。 で、コンパイラをインストールする。 (UNIX系だとはじめから入っている場合が多い。) ただしあなたの使用しているサーバは セキュリティー上CでのCGIは動かなくなっている かもしれません。 >テキスト中にNULL文字が含まれています! 多分文字コードがらみでしょう。 S-JISとEUC。 もしこれらのキーワードがわからないようでしたら C言語のCGIは敷居が高すぎでしょう。
- marimo_cx
- ベストアンサー率25% (873/3452)
ちょっと気になったのですが…。 >そのままの状態でアップロードすると、404エラーが出ます。 ソースはどこでコンパイルしたんでしょうか?
補足
今までPerlのCGIしか設置したことがなかったもので・・・ 「コンパイル」という言葉を初めて聞きました^^;; 配布元にも「本スクリプトの実行プログラムを生成するには、gcc等のCコンパイラが動作するマシン(稼動するWEBサーバと同じOS及びCPU)でなければ動作しません。 」とあったのですが、どうしたらいいのか全くわからなくてとりあえずアップロードしてしまった次第です・・。 お手数でなければコンパイルの仕方を教えていただけないでしょうか? 宜しくお願いします。
関連するQ&A
- CGIでの500エラー
CGIサイトを作成中の者です。 CGIをサーバーに転送して動作確認をしたらサーバーエラーになってしまいます。 サーバーに問い合わせて、以下が原因でエラーになっていることはわかりました。 Unrecognized character \x90 at ./miuinit.pl line 100. Compilation failed in require at miumgr.cgi line 11. でもCGI初心者なので、”\x90”が何をさすのか、2番目の文ではどこを直せばいいかわかりません。 サーバー会社では自分でCGIを修正せよとのことです。 よろしくお願いします。
- ベストアンサー
- CGI
- C言語とCGIによるおみくじの製作
初投稿になります。 私は現在C言語とCGIを使ったWebおみくじを作っています。 内容としては、入力フォームに入力された氏名、生年月日、性別の文字列を受け取り、それを整数に変換します。 そして変換された整数を計算することで20種類ほどの結果を返したいと考えています。 しかし、C言語によるCGIはperlなどのように資料が多くないため、あまり似たような構成のプログラムがなくあまり理解できていません。 Googleなどでc cgi などで検索して、見ることができるものは全て見ましたが、やはり理解できていない現状です。 特に、フォームに入力されたデータをcgiプログラムでどう受けるのか、また受け取った文字列をどうやって整数に変換するのかが分かりません。 もし、わかる方がいましたら、よろしければご教授願います。 また、コンパイルはgccで行っています。
- ベストアンサー
- CGI
- c#でC言語のstrtokに相当する関数は何か
文字列から指定した文字でデータを区切る関数strtokがC言語にはある これに相当するC#の関数は何か 例えばCでは以下のように書く。 char data1[]= " 123 , 456 Yamada " ; char *token ; strtok( data, " ," ) ; /* スペースとカンマを区切りに文字列を抽出 */ token = strtok( str, " ." ); printf(" token chat = %s\n", token ) ; while ( token != NULL ) { token = strtok( NULL," ." ); if ( token != NULL ) printf(" token chat = %s\n", token ) ; } これに相当するc#のSplit関数を使用すると 不要な空白を取り出しているようである 知っている方がおりましたら、教えて下さい。
- ベストアンサー
- C・C++・C#
- C言語でCGI
初めてC言語でCGIをやるわけではないのですが、わからないことがあるので質問させていただきます。 http://www2k.biglobe.ne.jp/~motoi/cdecgi.html このサイトを参考に話を進めさせていただきます。 まず、htmlで <HTML> <HEAD> <TITLE>テストページ</TITLE> </HEAD> <BODY BGCOLOR=#a0d0ff> <FORM METHOD="get" ACTION="test2.cgi"> <INPUT TYPE="text" NAME="fieldname" SIZE="50"><BR> <INPUT TYPE="text" NAME="fieldname2" SIZE="50"><BR> <INPUT TYPE="text" NAME="fieldname3" SIZE="50"><BR> <INPUT TYPE="submit" VALUE="書き込み"> </FORM> </BODY> </HTML> と書き、C言語で #include <stdio.h> #include <stdlib.h> #define getenv1(a) ((pdata=getenv(a)) ? pdata : "(NULL)") main() { int len; printf("Content-type: text/html\n\n"); printf("<HTML><HEAD></HEAD><BODY>\n"); printf("%s<BR>\n",getenv("QUERY_STRING")); printf("</BODY></HTML>\n"); } と書きます。 それからコンパイルを実行し、パーミッションも変更して実行を WEBサーバを作らずに実行するとファイルのダウンロードが始まります。(ファイル名はtest2.cgi) WEBサーバが無ければ文字をCGIに表示することは無理なのでしょうか? 教えてください。お願いします。
- ベストアンサー
- CGI
- C言語、最初からやり直すつもりが異変が?
いつも大変お世話になり誠にありがとうございます。 標記の件。 C言語を最初からやり直すつもりがコンパイル時に 理解できないエラーが発生しました。 原因はなんでしょうか? 度々すいません。 ご回答の程宜しくお願い申し上げます。 記 1.コード #include <stdio.h> int main(void) { printf("ようこそC言語へ!\n"); return 0; } 2.コンパイル C:\MinGW>gcc text1.c -o text1 text1.c:1:1: error: stray '\377' in program text1.c:1:2: error: stray '\376' in program text1.c:1:3: error: stray '#' in program text1.c:1:4: warning: null character(s) ignored text1.c:1:6: warning: null character(s) ignored text1.c:1:5: error: unknown type name 'i' text1.c:1:8: warning: null character(s) ignored text1.c:1:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'c' text1.c:1:10: warning: null character(s) ignored text1.c:1:9: error: unknown type name 'c' text1.c:1:12: warning: null character(s) ignored text1.c:1:14: warning: null character(s) ignored text1.c:1:16: warning: null character(s) ignored text1.c:1:18: warning: null character(s) ignored text1.c:1:22: warning: null character(s) ignored text1.c:1:24: warning: null character(s) ignored text1.c:1:26: warning: null character(s) ignored text1.c:1:28: warning: null character(s) ignored text1.c:1:30: warning: null character(s) ignored text1.c:1:32: warning: null character(s) ignored text1.c:1:34: warning: null character(s) ignored text1.c:1:36: warning: null character(s) ignored text1.c:1:38: warning: null character(s) ignored text1.c:2:1: warning: null character(s) ignored ^ text1.c:3:1: warning: null character(s) ignored i n t m a i n ( v o i d ) ^ text1.c:4:1: warning: null character(s) ignored { ^ text1.c:5:1: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:3: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:5: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:7: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:11: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:13: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:15: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:17: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:19: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:21: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:23: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:25: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:27: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:5:29: warning: null character(s) ignored p r i n t f ( " ・F0S0]0C 萱岳0text1.c:6:1: warning: null character(s) ignored ^ text1.c:7:1: warning: null character(s) ignored r e t u r n 0 ; ^ text1.c:7:3: warning: null character(s) ignored r e t u r n 0 ; ^ text1.c:8:1: warning: null character(s) ignored } ^ text1.c:9:1: warning: null character(s) ignored text1.c:9:11: warning: null character(s) ignored text1.c:9:13: warning: null character(s) ignored text1.c:9:15: warning: null character(s) ignored text1.c:9:17: warning: null character(s) ignored text1.c:9:19: warning: null character(s) ignored text1.c:9:21: warning: null character(s) ignored text1.c:9:23: warning: null character(s) ignored text1.c:9:24: warning: null character(s) preserved in literal text1.c:9:49: warning: null character(s) ignored text1.c:9:24: warning: unknown escape sequence: '\000' text1.c:9:51: warning: null character(s) ignored text1.c:9:53: warning: null character(s) ignored text1.c:10:1: warning: null character(s) ignored text1.c:11:1: warning: null character(s) ignored text1.c:12:1: warning: null character(s) ignored text1.c:13:1: warning: null character(s) ignored 全部は入力できませんでした。 誠に申し訳ありません。 ご回答の程宜しくお願い申し上げます。
- ベストアンサー
- C・C++・C#
- ECUコードのCGIを編集するには?
CGIをDLして編集しようとしているのですが コードがECUのものなので、いつも使っている EmEditorでは、文字化けしてしまって何が書かれているのか さっぱりわかりません。 ECUコードもちゃんと読めるように変換してくれる フリーで、できれば使いやすいエディターってありますか? 窓の杜にも行って見たんですが、どれがいいのかわからず帰ってきてしまいました。
- ベストアンサー
- CGI
- まったくわかりません。お手上げです。
今、CGIでワンクリックアンケートをスタッフに作ってもらっていたんですが、そのスタッフが退職し、CGIの分かる人がいなくなりました。 しかも、そのプログラムには以下のようなエラーが出るのです。 ----- Possible unintended interpolation of @form in string at ./poll.cgi line 108. Unrecognized character \x83 at ./poll.cgi line 222. ----- ----- Can't find string terminator "`" anywhere before EOF at ./poll.cgi line 494. ----- ----- Unrecognized character \x83 at ./poll.cgi line 621. ----- <全ソースはりつけたいのですがひとまずやめておきます(フリーのようですで貼り付けてもいいのかな?)> これだけではわからないものでしょうか?どなたか分かられる方、よろしくおねがいいたします。
- 締切済み
- CGI
- 特定のキャラクターを色づけするエディタ
Perlで以下のエラーが発生しました。 Unrecognized character \xA4 at ./x.pl line 354. その場所を見てみると、今までは全角が入っていたということがわかりますが、これをもっとすばやく見つける方法として、エディタで全角スペースなど特定の文字列をカラーで色づけするできるエディタを探しております。当方はxyzzyを使っていますが、私には難しすぎてこのxyzzyをカスタマイズできません。簡単に特定の文字列やキャラクターを色づけできる仕組みはありますか?
- ベストアンサー
- Perl
補足
パソコンが壊れてしまいお返事が遅くなって申し訳ありませんでした。知識もマシンスペックも全く足りず本当に敷居が高かった・・・と痛感しています。 丁寧にお答えいただきありがとうございました。