c cgi ÏÂÔØÎļþ - C/C++ / CÓïÑÔ
C/C++ code:
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <stdlib.h>
#include <string.h>
char *GetFileString(const char *path, long *fl)
{
char *buf = NULL;
FILE *cfPtr = fopen(path, "rb");
struct stat st;
*fl = 0;
if (cfPtr!=NULL)
{
fstat(fileno(cfPtr), &st);
*fl = st.st_size;
buf = (char *)malloc((*fl+1)*sizeof(char));
memset(buf, 0x0, *fl+1);
fread(buf, *fl, 1, cfPtr);
fclose(cfPtr);
}
return(buf);
}
int main(int argc, char *argv[])
{
long pl;
char *p;
printf("Content-Type: application/pdf\n");
printf("Content-Disposition: attachment; filename=DOWNLOAD.pdf\n\n");
p = GetFileString("C:\\pdf1.pdf", &pl);
if (pl>0)
{
_setmode(fileno(stdout), O_BINARY);
fwrite(p, pl, 1, stdout);
free(p);
}
return(0);
}
download.c: In function `GetFileString':
download.c:42: storage size of `st' isn't known
download.c: In function `main':
download.c:65: `O_BINARY' undeclared (first use in this function)
download.c:65: (Each undeclared i
Ïà¹ØÎÊ´ð£º
ÈçÌ⣬C/C++ÖеÄexeclÔõôµ÷ÓÃдºÃµÄjava³ÌÐò£¬
execl("/opt/java1.5/bin/java","MyClass",NULL);
ÕâÑùµÄ²»ÐÐŶ¡£
²»»á.
ÔËÐÐjava³ÌÐò
ÕÒ¹¤¾ß²é¿´Ò»ÏÂÄǸö³ÌÐòµÄÃüÁîÐÐ
ËÑË÷Ï£ºjni ......
ÔÚ¸ùĿ¼/libÖдæ·ÅÒ»¸ölog.c£¬log.h£¬²¢ÓÃÏÂÃæµÄÓï¾ä£º
gcc -c log.c
ar crv liblog.a log.o
±àÒë³öÒ»¸öliblog.a¾²Ì¬¿â£¬È»ºóÔÚÎļþ¼Ð£º/testfileÖд´½¨Ò»¸ötest.cºÍtestc.c£¬test.cÖÐÒýÓÃÁËtestc.cÖж¨ÒåµÄ·½·¨ ......
ΪʲôÎҵijÌÐòµ÷ÓÃXMLÅäÖÃÎļþÖеİ¢À²®ÎÄÏÔʾ²»³öÀ´£¿ÆäËûµÄÓïÖÖ¶¼¿ÉÒÔ£¬ÈçÖÐÎÄ£¬Ó¢ÎÄ£¬µÂÎͼ¿É¡£
ÎÒ½«XMLµÄ±àÂë¸ÄΪutf-8ºÍunicodeµÄµ½µÃ½á¹û¶¼Ò»Ñù.
°¢À²®ÎĵÄ×Ö¿âÄãÓÐô£¿
ÓÐ,ÎÒµÄEXEÊÇ·ÅÔÚpc»úÉÏÖ´Ðе ......
visual c++2008Ëٳɰ棬²»ÄܱàÒëC³ÌÐòÂð£¿Èç¹ûÄÜÊÇÔõô¿ªÊ¼µÄ°¡£¿ÓÃËü´øµÄÃüÁîÌáʾµ¥Ôª³ýÍâ ¡£
н¨¹¤³Ì£¨¿Õ¹¤³Ì»òwin32¿ØÖÆÌ¨£©
¾ø¶Ô¿ÉÒÔ¡£½¨Á¢win32¿ØÖÆÌ¨³ÌÐò¾Í¿ÉÒÔ
ÒýÓÃ
н¨¹¤³Ì£¨¿Õ¹¤³Ì»òwin32¿ØÖÆÌ¨£ ......
ÓÃlistviewÏÔʾ³ö´ÓÊý¾Ý¿âÖвéѯ³öµÄ¼Ç¼£¬ÏëÔÚ×îºó¼Ç¼ºóÃæÌí¼ÓÒ»ÌõºÏ¼ÆÐУ¬ÈçºÎʵÏÖ£¡Ð»Ð»´ó¼Ò£¡
°ó¶¨Êý¾ÝÄãÓ¦¸ÃûÎÊÌâ°É£¬°ó¶¨ÍêÒÔºóÓÃÒ»¸öÑ»·°ÑÄãҪͳ¼ÆÊý¾ÝµÄÁÐÖеÄÊý¾Ý×ܺÍÓÃÒ»¸ö±äÁ¿½ÓÊÜ£¬È»ºóÔÚÑ»·ÍâÃæne ......