『广安计算机信息中心』一直在致力于为广安营造这样一个学习环境:“轻松、高效、实际、体贴”。虽然前路漫漫,但我们在探索着、慢慢成熟着…… 网站首页┊QQ号发布┊软件下载┊游戏外挂┊黑客技术┊广安博客┊交流论坛
设为首页
加入收藏
投稿信箱
网站首页 ┊操作系统 ┊系统集成 ┊程序开发 ┊网页制作 ┊图形图象 ┊安全技术 ┊黑客技术 ┊硬件 DIY ┊业内新闻 ┊广安博客 ┊交流社区
当前位置:广安计算机信息中心 -=> 黑客技术 -=> 黑客进阶 -=> 正文  
热门文章
 普通文章 充QQ币不可缺少的东西.. 
 普通文章 系统溢出漏洞,利用QQ.. 
 普通文章 Windows按键突破专家.. 
 推荐文章 突破SQL注入攻击时输.. 
 普通文章 成为顶级黑客(2003年.. 
 普通文章 流和缓冲区的理解及标.. 
 普通文章 入侵动易2005 
 普通文章 网吧入侵之攻无不克!.. 
 普通文章 Linux下的网络监听技.. 
 推荐文章 在管理员的眼皮子底下.. 
相关文章
推荐文章
 推荐文章 突破SQL注入攻击时输.. 
 推荐文章 在管理员的眼皮子底下.. 
流和缓冲区的理解及标准输入的解决方法 【字体:大 中 小】
作者:[Seraphim] 来源:[广安计算机信息中心] 浏览:[ ] 评论:[] 
 
1、执行以下程序:
代码:
/*****************************************************
Name: copy_bar.c
Copyright: kernelxu
Author: kernelxu
Date: 2005-08-02 11:20
Description: show the progress bar while doing copy
****************************************************/

#include <stdio.h>

int main(void)
{
char c = '\0';
int i = 0;
long j = 0L;

putchar('\n');
puts("Copy?(y/n): \n");
for (; (c = getchar()) == 'y' || c == 'Y'; )
{
printf("Coping......");
for (i = 0; i <= 100; i++)
{
printf("%%%3d", i);
printf("\b\b\b\b");
j = 0L;
while (j < 20000000)
{
j++; /*delay相当于linux中sleep(n)*/
}
}
puts("\nFinished!\n");
puts("Copy?(y/n): \n");
}
system("pause");

return 0;
}

该程序实现一项简单的状态条显示功能(当然只是玩玩而已),但是它不能循环进行下去,程序执行一次循环就跳出了。

2、
代码:
/*****************************************************
Name: login_example.c
Copyright: kernelxu
Author: kernelxu
Date: 2005-08-02 14:17
Description: taking login for example to say sth about I/O buffer
*****************************************************/


#include <stdio.h>
#include <string.h>
#define NAME_MAX 10
#define USER_NAME "kernelxu\0"
#define PASS_WORD 123456

int main(void)
{
char userName[NAME_MAX] = {'\0'};
unsigned long passWord = 0UL;


for(; ; )
{
printf("Login:");
gets (userName);
printf("Password:");
scanf("%ld", &passWord);
if(passWord != PASS_WORD || strcmp(userName, USER_NAME) != 0)
{
printf("Login Incorrect!\n");
continue;
}
break;
}
printf("[%s@localhost ~]$", userName);
getch();

return 0;
}

该程序只要输入的用户名超过NAME_MAX-1值或者password输入的不是正整数,就无法登录了。

以上两例程序之所以存在很大的问题,主要是在处理标准输入缓冲及选择输入函数上不够慎重。本文先总结一下流(stream)、缓冲区(buffer)的概念,然后重点说一下这类问题的解决之道。
]]>
【 打印 】【 收藏 】【 评论 】
评一评(点击可查看更多评论)
 
广告服务

设为首页 - 加入收藏 - 关于我们 - 广告服务 - 版权申明 - 友情链接 - 网站地图