一道程序debug的题目
2012-03-02 14:12
85 查看
这是一个download file 的 c写的cgi ,请找出程序错误和可能有问题的地方。
void downFile( char *filename)
{
char buff[655];
int n;
time_t tp;
FILE *fp;
struct stat s;
tp=time(NULL);
stat(filename, &s);
printf("HTTP/1.1 200 OK\n");
printf("Content-Disposition: attachment;filename=test.txt\n");
printf("Content-Transfer-Encoding: binary\n");
printf("Accept-Ranges: bytes\n");
printf("Content-Length: %ld\n",s.st_size);
printf("Connection: close\n");
printf("Content-type: application/octet-stream\n");
fp=fopen(filename, "rb");
while((n=fread(&buff, sizeof(char),655,fp))>0){
fwrite(buff, 1, n, stdout);
}
fclose(fp);
}
答案:
1,windows 的话 注意 \r \n
2,Content-type: 后面是\n\n不是\n
3,&buff这错误。
4,fp判断是否为空,很可能没有权限读。
void downFile( char *filename)
{
char buff[655];
int n;
time_t tp;
FILE *fp;
struct stat s;
tp=time(NULL);
stat(filename, &s);
printf("HTTP/1.1 200 OK\n");
printf("Content-Disposition: attachment;filename=test.txt\n");
printf("Content-Transfer-Encoding: binary\n");
printf("Accept-Ranges: bytes\n");
printf("Content-Length: %ld\n",s.st_size);
printf("Connection: close\n");
printf("Content-type: application/octet-stream\n");
fp=fopen(filename, "rb");
while((n=fread(&buff, sizeof(char),655,fp))>0){
fwrite(buff, 1, n, stdout);
}
fclose(fp);
}
答案:
1,windows 的话 注意 \r \n
2,Content-type: 后面是\n\n不是\n
3,&buff这错误。
4,fp判断是否为空,很可能没有权限读。
相关文章推荐
- 一道程序初始化顺序题目引起的讨论
- 一道有关球赛队员分配的C++程序题目
- 今天做了一道的题目,简单是因为程序写起来简单,但是感觉题目不错;
- 一道有关球赛队员分配的C++程序题目
- 一道有关球赛队员分配的C++程序题目
- 使用缓冲流读取试题文件,每次显示试题文件中的一道题目。读取到字符“*”时候暂停读取,等待用户从键盘输入答案。用户做完全部题目后,程序给出用户的得分。Test.txt如下:
- 数学与程序的结合——一道游戏题目的快速解法
- 程序帮我解答了一道无法很有说服力用手算证明的题目
- 2014年上海 微软最后一道程序题目
- 一道IBM面试题目,写程序题
- 大学一年级做过的一道程序题——螺旋矩阵
- 一道逻辑推理题的程序实现(纯属娱乐)
- Python中一道关于字符串分割的题目
- 一道常见的面试题目
- 四则运算题目生成程序
- 1.四则运算题目自动生成程序
- 个人作业1——四则运算题目生成程序(基于C++)
- 四则运算题目生成程序(基于控制台)
- [面试小题目] SAP的一道面试题
- PHP简答和程序笔试题目