C + HTML + javascriptで cgi

C言語でHTMLを作成し、パラメータをJavascriptに渡し、cgiとして実行する

# gcc test10.c -o test10.cgi

例題は、c言語でIPアドレスが書かれているファイルを読み込み、javascriptで処理する

---------------------------------------------------------------------------

c言語(htmlファイル)
// ********************************************************************
// [c] + [HTML] + [javascript] => [cgi]
// gcc test10.c -o test10.cgi
// ********************************************************************
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>

#define f_ipadds        "/public_html/ramdisk/ip_adds"  // ip_addsが書かれているファイル
// ********************************************************************
int32_t ip_read(char *ip_data){
        FILE *fp;
        char c,*p;
        p = ip_data;
        fp = fopen(f_ipadds, "r");
        if( fp == NULL )return(-1);
        while((c = fgetc(fp)) != EOF){
                if(c > 0x20)*p++ = c;
                else break;
        }
        *p = '\0';
        fclose( fp );
        return(1);
}
// ********************************************************************
void main(void){
        int32_t ret;
        char ip_data[128];

        ret = ip_read(ip_data);                                 // ip-addsを読み込む
        if(ret < 0)ip_data[0] = '\0';

        printf("Content-type:text/html\n\n");
        printf("<HTML><HEAD>\n");
        printf("<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\n");
        printf("<META http-equiv=\"Content-Style-Type\" content=\"text/css\">\n");
        printf("<TITLE>index9</TITLE>\n");
        printf("</HEAD>\n");
        printf("<BODY bgcolor=\"#ffffff\">\n");

//      printf("start index9.html ip_data=[%s]<BR>\n",ip_data);

        printf("<div id=\"test\" style=\"background-color:#fff000;\"></div>\n");
        printf("<div id=\"test1\" style=\"background-color:#fff00f;\"></div>\n");
        printf("<div id=\"test2\" style=\"background-color:#fff000;\"></div>\n");

        printf("<SCRIPT type=\"text/javascript\" src=\"test10.js\"></SCRIPT>\n");
        printf("<SCRIPT>disp_watch('%s:8080');</SCRIPT>\n",ip_data);

        printf("</BODY></HTML>\n");
}
javascriptファイル
// ###########################################################################
function disp_watch(str){
        var     dir             = 'http://' + str + '/ramdisk/';
        var     nme             = dir + "OUT_Circle_img";

        document.getElementById("test").innerHTML = str + '<BR>';
        document.getElementById("test1").innerHTML = nme + '<BR>';
}