pc gf是什么意思:cgic输出图片问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 22:57:16
--------------------------------------------------------------------------------

问题 :
我下载编译了cgic205中的cgictest.c cgic.c cgic.h 文件,放在在我的Apche2.2的cgi-bin目录中。
我打开浏览器调用cgi-bin/cgitest.exe 显示正常上传文本文件回显正常。可是上传.gif图片回显是一堆乱码,难道cgitest.c文件显示不了图片吗?要怎么改才能回显图片呢?
我搜过一篇显示图片的文章是用setmode(fileno(stdout),O_BINARY)函数原文如下:

“如果你的脚本发送图形数据,使用面向字符的流则意味着立即失败。解决方法是将流切换到二进制模式。在C语言中,可以使用setmode函数:setmode(fileno(stdout),O_BINARY)。通过setmode(fi1eno(stdout),O_TEXT)在流当中进行切换。一个典型的图形脚本以字符模式输出头部,而后切换到二进制模式用于图形数据。”

但是我不会用
我看到cgic.c文件中为什么把setmode(fileno(stdout),O_BINARY)函数写成这样:
#ifdef WIN32
/* 1.07: Must set stdin and stdout to binary mode */
/* 2.0: this is particularly crucial now and must not be removed */
_setmode( _fileno( stdin ), _O_BINARY );
_setmode( _fileno( stdout ), _O_BINARY );
#endif /* WIN32 */
难道写windows 平台程序要#define WIN32 吗?
我没#define WIN32 我的cgitest.exe为什么也能照样运行呢?
知道的请举例详细说明用c语言怎样通过调用setmode()函数,在cgi程序中输出图片,如果能在cgitest.c代码中实现将不胜感激
回答下面问题也可得到悬赏分:

图片存在*befull里还得创建一个文件fopen()把图片写到文件里fwite()再使用<img=src.....>显示在网页上吗?用c语言不能直接把*befull里的图片写到标准输出stout再网页上显示出来吗?

一般的网页是:
printf("Content-type: text/html\n\n")
printf("<HTML><HEAD>\n");
printf( "<TITLE>cgic test</TITLE></HEAD>\n");
printf( "<BODY><H1>cgic test</H1>\n");
怎么样在这里直接输出图片而不是用printf("<img=src...>")这样的东西,
int name[]; 假设里面有图片
怎么样才能把name里的图片直接输出

printf("</body></html>")

查114给技术部门求助