>>2114 68user なんかいろいろとアレなので、書き直し。 int sock; int pipes[2]; bind(...); listen(...); sock = accept(...); ... ヘッダ読み込み ... pipe(pipes); if ( fork() == 0 ){ char *args[]={"cgi", NULL}; dup2(sock, 0); dup2(pipes[1], 1); execvp("/home/user/public_html/cgi-bin/foo.cgi", args); } else { char buf[256]; int len; int status; while ( len=read(pipes[0], buf, sizeof(buf) ){ write(sock, buf, len); } wait(&status); } ソケットのデータを CGI プロセスの標準入力に渡し、 CGI プロセスの標準出力を受け取り、そのままブラウザに 返す web サーバもどきです。 |