
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
//输出HTTP头
printf("Content-type: text/plain\n\n")
//从CONTENT_LENGTH环境变量中取出其值
int n = atoi(getenv("CONTENT_LENGTH"))
printf("%d\n", n)
char buf[20]
memset(buf, 0, sizeof(buf))
//从stdin标准输入流中读取数据
fgets(buf, n, stdin)
//输出
printf("Hi, this is CGI with c\n")
printf("%s\n", buf)
return 0
}
大致流程你都懂,就是有些细节不清楚吧。从stdin读取数据时,首先要知道读多长的数据,而这个长度保存在“CONTENT_LENGTH‘整个环境变量中。另外从stdin读取数据要用fgets函数,scanf不是用在网络通信中读取数据用的。
cgi只是一个接口而已,你可以用Perl/C/C++/python/Java/PHP/ABC/EFG去写PHP是一种编程语言,由于Apache有PHP的专用模组,所以可以直接调用,现在比较少人会使用CGI的方式执行PHP(不过好像使用fast-cgi的有一定巿场),大部份的PHP用途是server side script,但实际上你也可以把他写成desktop application,有qt等界面库可以调用(不过真的没多少人开发就是了)
总结:
CGI是一种server side script的执行方式
PHP是一种编程语言!
考的是运算符优先级http://baike.baidu.com/link?url=IL17TMPY1OPIEkLlnNdfhjCWxGWh5gu6MLMTSVVaN8VbTegB5aVueWR8eVmkR9NFAXYkkcnLrb4EoWn_Jgqncm5m2zTjW_GqbkV9JpcqT5GcGIuMG310Hlt7ZqUHAOex9o2GQIn_KuZRbcRRiv5Oka这里有详细的解答你的题:
前置++的运算优先级小于<=所以先<= a<=0为1(真)++后结果为2;0<=0所以第一个表达式为真结果为1。注意此时a的值为0
第二个表达式同理b--=33<=0为假表达式结果为1,现在算!(1)=0;
最后算与运算2&&0=0(0为假2>0C语言中不为0的都是真,与运算的含义是俩都为真才为真所以结果为1)因此k=1;
k=1,a=0,b=3
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)