#ifndeflintstaticconstchar 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>#ifdefHAVE_UNISTD_H#include<unistd.h>#endif#ifdef_WIN32#include<process.h>#elseexternchar**environ;#endif#include"fcgi_stdio.h"staticvoidPrintEnv(char*label,char**envp){printf("%s:<br>\n<pre>\n", label);for(;*envp !=NULL; envp++){printf("%s\n",*envp);}printf("</pre><p>\n");}intmain(){char**initialEnv = environ;int count =0;//循环接收请求while(FCGI_Accept()>=0){//接收的数据长度,只有post请求这个值才大于0char*contentLength =getenv("CONTENT_LENGTH");int len =0;//相当于发送数据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());//将字符串转为intif(contentLength !=NULL){
len =strtol(contentLength,NULL,10);}else{
len =0;}if(len <=0){printf("No data from standard input.<p>\n");}else{// 有post请求数据int i, ch;printf("Standard input:<br>\n<pre>\n");for(i =0; i < len; i++){// 读取post请求数据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 */return0;}
编译
gcc echo.c -lfcgi
启动fastcgi
spawn-fcgi -a 127.0.0.1 -p 10010 -f ./a.out
如果有以下报错,说明启动失败了。先直接启动下a.out看是什么报错
spawn-fcgi: child exited with: 127
直接启动a.out,可以看到以下报错
./a.out: error while loading shared libraries: libfcgi.so.0: cannot open shared object file: No such file or directory
题目链接:leetcode 138
1.题目
给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。
构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节…