47674


CGIアプリをC言語で作っていますが、サーバー側のコンソールでテストデーターを、標準入力から入力してテストすることは出来るのでしょうか？  
OS Linux debian


CC BY-SA 4.0
2018-08-20T22:26:36.710
47672
2018-08-21T00:07:28.603
15090
question
linux c cgi
CGIの標準入力のテスト


できますかという質問の答えは Yes/No のどちらかで、この場合 Yes なわけですが

[code]

    #include <stdio.h>
    #define LINELEN 1024
    int main() {
        char buf[LINELEN];
        puts("Content-type: text-plain; charset=iso-8850-1");
        while (fgets(buf, LINELEN, stdin)) {
            puts(buf);
        }
        return 0;
    }
    
[/code]

サーバー上 `httpd` が cgi プロセスを起動した際の「 cgi
プロセス側標準入力」が何であるかは要考察で、多分キーボードではないわけです。そもそも論として、いつクライアントがアクセスしてくるかわからない状況で、応答内容をサーバー上オペレーターがキーボードから入力するというのは運用的にありえないです（たとえデバッグ目的であっても）

本当にやりたい案件は何か再考察することをお勧めします。


CC BY-SA 4.0
2018-08-20T23:38:29.353
47673
2018-08-20T23:38:29.353
8589
47672
answer


環境がUNIX系であれば、以下のサイトにあるような方法でテストできるはずです。(ただし、perl -d xxx.cgi部分を
cで作成されたCGI名に変更する必要があります。)

  * [CGIの古典的デバッグ(GET編)](http://miau.s9.xrea.com/blog/index.php?itemid=689)
  * [CGIの古典的デバッグ(POST編)](http://d.hatena.ne.jp/miau/20090828/1251424242)


CC BY-SA 4.0
2018-08-21T00:07:28.603
47674
2018-08-21T00:07:28.603
29553
47672
answer