C言語で作ったプログラムをCGIで動かすにはどうすればいいのでしょうか?

サーバ側になにをアップし、ブラウザ側で何を呼び出せばいいのかわかりません。
EXEファイルの拡張子をcgiにしても
ダウンロードされるだけだったし(当たり前ですか?)。

ちなみにサーバは会社のサーバを使っていて、CGIも使えるはずです。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

Windowsの様子なので、IISかapache for W32


あたりでしょう。
サーバ側の設定不足です。

まず、Windowsなのでexeはexeのままでないと、
実行できません。

IISなら、cgiファイルはサーバ上の「Scripts」
ディレクトリの下に置きます。

使うときは
<a href="/Scripts/abc.exe">ほげほげ</a>
の様にhtmlの中に記述します。

IISの設定的には、cgiファイルを置くディレクトリ
は、実行アクセス権として
「スクリプトおよび実行可能ファイル」という
設定が付いている必要があります。

インターネットサービスマネージャの画面で
プロパティを見てればなんとなく気づくと思います。

apacheならhttpd.conf内のWcriptAlias設定をします。
    • good
    • 0
この回答へのお礼

Scriptsのフォルダにおいたら実行できました!
ありがとうございます。

お礼日時:2001/06/28 16:16

CでCGIを組む場合には、


ソースファイルをサーバにアップしてから、
サーバー上でtelnetを使ってコンパイルします。
これは、サーバーが通常Unixであるために、
Windows上でコンパイルしたものでは使えないからです。

具体的な方法に関しては、
参考URLを見てください。

#1の方へ。
CGIはPerl,C,PHPなどなどいろいろありますよ。
Perlはプログラム未経験者にはちょうどいいですが、
経験者にとっては非常に汚いものなんです。

参考URL:http://www2k.biglobe.ne.jp/~motoi/cdecgi.html
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2001/06/28 16:17

サーバはWindowsNT系と仮定してお話します。



「.exe」ファイルを「.cgi」にする必要はありません。

IISを起動させ、作成されたexeファイルを格納しているパス、あるいはそのexeファイルそのものに実行権限を与えないと出来ません。
(確か、スクリプトに対する権限だったような・・・)
この、実行権を与えないとダウンロードされるだけとなってしまいます。

また、作成されたexeファイルがどんな内容を返すのかは知りませが、結構複雑ですよ。
私はDelphiでCGIを動かしていますけど結構苦労しました。
    • good
    • 0
この回答へのお礼

「.exe」ファイルを「.cgi」にしたことは忘れてください☆
ほんとなにやってんだか…。

ファイルを置く場所を間違っていたみたいです。
ありがとうございました。

お礼日時:2001/06/28 16:11

よくわかんないんですが、CGIって、Parlとかで


組むものじゃないんですか?

この回答への補足

Parlのほうが簡単なんですけど、jubakoさんの言うとおり、ソースが美しくないし、上司がCでやれって言うから…。すいません。

補足日時:2001/06/28 16:07
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフォーム(CGI)等を使わない商用のメール自動返信サービス

メールフォーム(CGI)等を使わずに、あるメールアドレスに届いたメールに対して自動返信メールを送信できるサービスを探しています。

詳細な要件は以下の通りです。
・メールフォーム(CGI)は使わない
・OSのメール転送スクリプトは使わない(.forward、aliases等)
・メーラーの自動返信機能は使わない
・返信したメールに広告文が入らない
・商用の有償サービスでもOK
・自動返信メールに(「このメールは自動返信です」みたいな)メッセージと元のメールの内容が記載できる

イメージ的には下記のサービスが合っていますが、それ以外で同様のサービスがありましたら教えてください。
http://123mail.jp/SP/indexpc.html

Aベストアンサー

条件がきびしいですが、なぜここまで制限が多い必要が
あるのか不明です。普通でしたら.forwardがもっとも
有効な処理だと思います。

結局、POPで受信してそこから相手のメアドを抜いた上で、
返信するプログラム・・・という感じでしょうか?
とりあえずは「あるメールアドレスに届いたメール」に
アクセスできる環境が必要になります。
そうでなければあるメールアドレスから転送が必要に
なるので.forwardは必要になりますよね?

.forwardをつかわないとなると、メールが来たという
判断ができないため、受信をトリガーにすることが
できませんがよろしいのですね?
その場合は定期処理でPOP受信を走らせる必要があるので
オーバーヘッドが大きいと思いますが、本当にそれで
いいのですね?

そうであれば、shスクリプトをcronで走らせるような
形のプログラムで実現できそうです。
商用の有償サービス探すよりはスキルしだいですが
ご自身でお書きになった方が汎用的につかえるとおもい
ますが、いかがでしょうか?

Q拡張子をcgiにしたい。

こんにちは、namerinです。
とあるサイトからcgiファイルを「対象をファイルに保存」し、そのサイトの説明で「ダウンロード後は拡張子をcgiんに直してほしい」と書いてありました。
拡張子をcgiに直す方法を教えて下さい。
(ちなみに現在CGI設置中です)

サイトにはこんな風にかいてありました。

ダウンロード後は、拡張子を.cgiに変更してください。
次に、設置したnicky.cgiと同じフォルダに上記5つのファイルをFTPのバイナリモードで転送します。
転送した5つのファイルのパーミッションを666(-rw-rw-rw-)に設定します。

Aベストアンサー

 極窓(↓)を使用すると便利ですよ。

あと、UPする際にはバイナリで上げると、勝手に改行してしまってCGIが壊れるので、
ASCIIモードで上げないと動きませんよ。
FFFTPを使うことお勧めします。

パーミッションは755にしないと他人に書き換えられてしまい、サーバに迷惑を掛けるので早めに変えて下さいね。

参考URL:http://www.55555.to/index.htm

Qi'm looking forward to seeing you.のforwardは副詞なので語順

i'm looking forward to seeing you.のforwardは副詞なので語順は自由なので
i'm looking to seeing you forward.という風にはできますよね?

Aベストアンサー

英語については素人ですが、二年間の米国留学、かなり多量読みましたので、ひと言。
>looking forward to seeing you
は完全に「慣用句」なので、ネイティブは「分かるけど、変な英語だな」と思うでしょう。

Q拡張子がcgiのページについて

検索エンジンは動的なページを読みたがらないと聞いたことがありますが、googleで検索すると拡張子がcgiのページを検索できることがあります。そこで質問です。

1.実際は拡張子がcgiのページでもgoogleはデータを拾っているのでしょうか。拾われるには何か条件があるのでしょうか。

2.もし拾われたくない場合はロボット除けのmetaタグを入れたほうがよいのでしょうか。

3.ロボットはURLの?以降が違っても別のページと解釈するのでしょうか。

4.普通の人にcgiのページを見られたくない場合、検索エンジンだけ気をつければ大丈夫なのでしょうか。(特に重要なことが書かれているわけではありません。無理やりみたければみれば程度の内容です。私の覚書のようなもので他人が見ても全く意味をなさいものを私が別の場所のPCや携帯で見たい時に使います。)

たくさんあってすみませんが教えてください。

Aベストアンサー

> 1.実際は拡張子がcgiのページでも(略
http://www.google.co.jp/intl/ja/webmasters/2.html
↑の「動的に生成されたページを使用している。」を参考にしてください。
パラメータはURLの?以降のxx=yyです。(&で区切ってその数が多いかどうか)

> 2.もし拾われたくない場合は(略
ページ単位ではmetaタグで。
サイト全体、またはディレクトリ単位の場合、
metaに加えてrobots.txtもあった方がよいです。
http://www.google.co.jp/remove.html#exclude_website
いずれにしても確実に拒否できると安心はできないので、
完璧に遮断するには.htaccessなどでロボットのIPを遮断します。

> 3.ロボットはURLの?以降が違っても(略
別ページと解釈します。

> 4.普通の人にcgiのページを見られたくない場合(略
そのページの重要度にもよりますが、「他人が見ても意味がないから」
のような理由であれば、metaで充分でしょう。
機密性の高いページであれば、.htaccessを使ったBASIC認証や
CGIでのパスワード方式をとるべきです。

> 1.実際は拡張子がcgiのページでも(略
http://www.google.co.jp/intl/ja/webmasters/2.html
↑の「動的に生成されたページを使用している。」を参考にしてください。
パラメータはURLの?以降のxx=yyです。(&で区切ってその数が多いかどうか)

> 2.もし拾われたくない場合は(略
ページ単位ではmetaタグで。
サイト全体、またはディレクトリ単位の場合、
metaに加えてrobots.txtもあった方がよいです。
http://www.google.co.jp/remove.html#exclude_website
いずれにしても確実に拒否できると安心は...続きを読む

Qサーブレットforward時の実行メソッドについて

初歩的な質問で失礼します。

サーブレットAに doGet, doPost, serviceメソッドを実装しています。
サーブレットBのdoPostメソッド内にて
サーブレットAにforwardを実行する場合に、
呼出されるのはサーブレットAのどのメソッドですか?

JSPへのforwardはできたのですが、
サーブレットへのforwardができず悩んでいます。

サーブレットのAPIを読んでもいまいちわかりません。
何かメソッドに関する制約があるのでしょうか?
上の質問は全くマト外れでしょうか?

追加ですが・・・
サーブレットからforwardされたサーブレットで、
そこからさらにJSPへforwardすることはできますか?

Apache2.0.43+tomcat4.1.12+Java1.4.0_01です。

Aベストアンサー

> サーブレットBのdoPostメソッド内にて
> サーブレットAにforwardを実行する場合に、
> 呼出されるのはサーブレットAのどのメソッドですか?

doPost() のはず。実際には、forward するときの HttpServletRequest#getMethod() で取得できる文字列に従うはず。

> JSPへのforwardはできたのですが、
> サーブレットへのforwardができず悩んでいます。

forward に関して、servlet と JSP の違いはないはず(というか、JSP は自動コンパイルされる servlet だし)。
getRequestDispatcher() してるパスが間違っているのだと思います。

> サーブレットからforwardされたサーブレットで、
> そこからさらにJSPへforwardすることはできますか?

コンテナの実装次第だけど、forward() は、サブルーチン呼び出しと変わらないはずなので、
回数に制限はないはず。

Q無料のフォームメールのCGIでクレジットをはずしても構わないもの

大変図々しい質問かと思いますが、
無料のフォームメールのCGIでクレジットをはずしても構わないものを
配布しているサイトをご存知の方がおられましたら
教えていただけませんでしょうか?

以前、どこかで見つけたように思うので、
かなり探したのですがなかなか見つかりません・・・。

よろしくお願いします。

Aベストアンサー

【安心出会い検索】
http://www.deaikensaku.net/o1.html

こちらのサイトのcgiはリンク表示義務はなく、改造方法等のマニュアルも添付してあり、非常に重宝させて頂いています

参考URL:http://www.deaikensaku.net/o1.html

Q英語look forward to ---ing

いつもお世話になっております。

英語の質問ですが、
look forward to ---ing の構文が文法的に今一つしっくりせず困っております。

I'm looking forward to seeing you.

上記文章は何文型なのでしょうか。

toは前置詞。forwardは副詞? 1文型でしょうか?

Aベストアンサー

 お考えの通りforwardが副詞でtoが前置詞、前置詞ですから名詞、動名詞が続くことになります。
動詞が他の名詞や副詞、前置詞などと結びついて「本来の意味から発展した意味」を示し動詞と同様に働く時にまとめて句動詞として扱われますので、S+V+Oの第3文型として理解しておいていいのだと思います。

QCGIでカウンタを動かすとき「Fly.exe」の役目について

CGIを使ったときに必要?な「Fly.exe」というものはどういった役目をするものでしょうか?

今どうしてもCGIが動かないのですがそのファイルの操作をしていないのが原因かなと思っておりますがいまいちHPとか見ても海外のものなのでわかりづらいのですが・・・
1.どういった意味合いなのでしょうか?
2.何かいじる必要性は?ただCGIが動くフォルダに入れればよいものなのでしょうか?
よろしくお願いします。

Aベストアンサー

GIF画像を生成するためのライブラリです。

http://www.tryhp.net/onthefly.htm

CGIと同じディレクトリ(WinPCのようですからフォルダでいいかな?)に置いておくだけでOKです。

Qlook forward to ~ing について

英語の文法についてなんですが、 この look forward to ~ing の
forwardは副詞ですか?

あとこの to が前置詞だから そのあとに動詞が来る場合には ingにしなければならないのですが、 なぜ toなのですか? 別に look forward in ~ing や look foward at ing にしてもよさそうなのですが、文法的には間違ってるのですか?

あと to 不定詞として使って、look forward to + 動詞の原型として使ってよさそうなのですが、だめなのですか?

分かる方がいたら助けてください><

Aベストアンサー

こんばんは。

>>>forwardは副詞ですか?

そのとおりです。
手元の英英辞典でもそうなっていますし、
こちらでも、そう書かれています。
http://eow.alc.co.jp/forward/UTF-8/?ref=sa


>>>なぜ toなのですか? 別に look forward in ~ing や look foward at ing にしてもよさそうなのですが、文法的には間違ってるのですか?
>>>あと to 不定詞として使って、look forward to + 動詞の原型として使ってよさそうなのですが、だめなのですか?

よくあるタイプの質問ですね。
文法というものは、すでに世の中にある言葉を体系化しただけのものにすぎません。
look forward at という言い方や look forward to 原形 という言い方はありません。
ですから、文法的に間違っている以前に、言葉として間違っているのです。

日本語でも、たとえば、
「僕は気がついた」
という文があるとき、文法的には主語は「気が」です。
しかし、
100%近くの日本人は、「気がついた」で一つの動詞と見なし、
主語は「僕は」であると考えているはずです。
ですから、
「僕は」を「僕の」に替えて、
「僕の気がついた」とするのは文法的には誤りではありませんが、言葉として間違っています。



なお、
look を動詞としてではなく名詞として扱い、
“look forward”でひとくくりの名詞のようにして、
“A Look Forward At ~”
という言い方は、たまに使われるようです。
未来に関して「~の展望」といった感じの意味です。


以上、ご参考になりましたら。

こんばんは。

>>>forwardは副詞ですか?

そのとおりです。
手元の英英辞典でもそうなっていますし、
こちらでも、そう書かれています。
http://eow.alc.co.jp/forward/UTF-8/?ref=sa


>>>なぜ toなのですか? 別に look forward in ~ing や look foward at ing にしてもよさそうなのですが、文法的には間違ってるのですか?
>>>あと to 不定詞として使って、look forward to + 動詞の原型として使ってよさそうなのですが、だめなのですか?

よくあるタイプの質問ですね。
文法とい...続きを読む

Q買い物カゴ画面(拡張子.cgi)にファビコンを設定

自分のHPにkent webさんのweb mart ver1.7を使用しています。
拡張子がhtmとhtmlのページ(買い物カゴ画面以外)にはファビコンを設定していますが、cgiのページにファビコンを表示させるにはどうすればいいのでしょうか?

cgiファイルに直接ファビコン設定を記述するのでしょうか?

よろしくお願いいたします。

Aベストアンサー

試せる環境がないので、推測ですが。。。

mart_init.cgiのheader部分の<head>要素の中に以下のような文を追記すると
表示できると思います。
<link rel="icon" href="ファイルの指定">
<link rel="shortcut icon" href="ファイルの指定">


人気Q&Aランキング