📄 echo.c
字号:
/* * echo.c -- * * Produce a page containing all FastCGI inputs * * * Copyright (c) 1996 Open Market, Inc. * * See the file "LICENSE.TERMS" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * */#ifndef lintstatic const char rcsid[] = "$Id: echo.c,v 1.5 1999/07/28 00:29:37 roberts Exp $";#endif /* not lint */#include "fcgi_config.h"#include <stdlib.h>#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#ifdef _WIN32#include <process.h>#elseextern char **environ;#endif#include "fcgi_stdio.h"static void PrintEnv(char *label, char **envp){ printf("%s:<br>\n<pre>\n", label); for ( ; *envp != NULL; envp++) { printf("%s\n", *envp); } printf("</pre><p>\n");}int main (){ char **initialEnv = environ; int count = 0; while (FCGI_Accept() >= 0) { char *contentLength = getenv("CONTENT_LENGTH"); int len; printf("Content-type: text/html\r\n" "\r\n" "<title>FastCGI echo</title>" "<h1>FastCGI echo</h1>\n" "Request number %d, Process ID: %d<p>\n", ++count, getpid()); if (contentLength != NULL) { len = strtol(contentLength, NULL, 10); } else { len = 0; } if (len <= 0) { printf("No data from standard input.<p>\n"); } else { int i, ch; printf("Standard input:<br>\n<pre>\n"); for (i = 0; i < len; i++) { if ((ch = getchar()) < 0) { printf("Error: Not enough bytes received on standard input<p>\n"); break; } putchar(ch); } printf("\n</pre><p>\n"); } PrintEnv("Request environment", environ); PrintEnv("Initial environment", initialEnv); } /* while */ return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -