一些库函数实现(注意安全性检查)

十进制转二进制 

安全性检查略

 

atoi 基本版:抛出异常

int f_convert(char *str) throw (char*)
{
//数字字符串转换为int型
    if(!str){
      char*a="pointer is NULL\n";
      throw(a);
     }
 int tmp=0;
 int len=strlen(str);
 for(int i=0;i<len;i++){
  if(!isdigit(str[i])){
   char*b="!digit\n";
   throw(b);
  }
   tmp*=10;tmp+=str[i]-'0';
 }
    return tmp;
}

atoi 高级版:判断溢出

测试数据:

指数函数、幂函数自己实现

//位运算加分治+安全性检查
 

strcpy  字符串拷贝

时间: 2024-09-20 14:44:00

一些库函数实现(注意安全性检查)的相关文章

运行时和编译时的安全性检查

摘要:说明 Visual C++ 编译器和库在帮助开发人员提高其应用程序可靠性和安全性方面的功能. 样例应用程序中包含六个测试,用来模拟程序员可能会犯的某些错误,或者模拟对未采取任何保护措施的程序进行恶意输入所产生的某些后果: 1.通过多次运行循环程序覆盖缓冲区.由于只定义了一个缓冲区,因此覆盖缓冲区将影响包含返回地址的堆栈的剩余部分. 2.当另一个缓冲区也在堆栈中时覆盖缓冲区. 3.不覆盖缓冲区. 4.使用未初始化的变量. 5.执行可能导致丢失信息的转换. 6.以更复杂的方式使用未初始化的变量

DB2 UDB 安全性插件概述

安全性插件是动态可装载库,当 DB2 UDB 进行身份验证或者从组成员中 查找某 个用户的时候,便调用这些库.在 8.2 版之前,这些操作是由 DB2 UDB 之外的设施管理的, 例如操作系统.域管理器或 Kerberos 安全性系统.图 1 提供的场景说明了在 8.2 版之前 DB2 UDB 安全性的工作原理.下一节将描述 8.2 版中发生的变化.图 1. 安全性场景498)this.w idth=498;' onmousewheel = 'javascript:return big(this

安全性问题

更改默认密码 大量关键信息 - 金融的.市场的.私人的 - 难以置信地在 Internet 上失窃,不仅因为不够严密的安全体系结构,还因为不负责任地留下了数据库和系统的默认安装密码.如果您不希望成为上述的一员,一定要更改 RDBMS.Windows NT 计算机和其他资源中众所周知的用户默认登录密码. 检查入口处的安全性 有多种方法和位置可以执行安全性检查.但是,一直使用的好方法 - 是在可能的第一个入口点就进行安全性检查.这可以简化管理.将应用程序与它使用的资源分离,以及通过不使它在以后再失败

银行家算法之安全性算法

安全性算法过程描述 流程图 例子 代码实现 运行截图 1. 安全性算法过程描述 (1) 设置两个向量:① 工作向量Work:它表示系统可提供给进程继续运行所需的各类资源数量的多少,它含有m个元素,在执行安全算法开始时,Work = Available:② Finish:它表示系统是否有足够的资源分配给进程,使之运行完成.开始时先做Finish[i]= false:当有足够资源分配给进程时, 再令Finish[i]= true. (2) 从进程集合中找到一个能满足下述条件的进程: ① Finish

第一讲 Java语言概述

★ 第一讲 Java语言概述 [课前思考] 1. 一门新的语言的产生是否需要借鉴以前的编程语言? 2. 在java语言出现之前是否存在其它跨平台的语言? 3. 有哪些编程语言是面向对象的?而哪些编程语言是面向过程的?从编程思路上存在着哪些本质差别?C++语言是面向对象的还是面向过程的? 4. 一段优秀的程序代码是否应该是可读性极强的?程序员之间是否应该遵循相同的编程规范? 5. 一个程序员编好的代码如果需要让别的程序员使用,如何提供该代码的使用说明? 1.1 java语言的发展史 1.1.1 j

【架构篇】Android移动app架构设计浅谈

前言 架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计. 软件架构设计目标: 1.可靠性(Reliable).软件架构的可靠是产品设计的前提. 2.安全性(Secure).软件架构的安全性是产品可持续发展的条件. 3.可扩展性(Scalable).软件架构必须能够不同的功能需求情况下,支持可扩散性. 4.可定制化(Customizable).同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整. 5.可伸缩 (Extensible).在新技术出现

网络子系统80_inet协议族-SOCK_RAW(一)

// SOCK_RAW 1.1 static struct inet_protosw inetsw_array[] = { ... { .type = SOCK_RAW, .protocol = IPPROTO_IP, /* 通配符 */ .prot = &raw_prot, /* Networking protocol blocks attached to sockets */ .ops = &inet_sockraw_ops, .no_check = UDP_CSUM_DEFAULT,

java单链表常用操作

总结提高,与君共勉 概述. 数据结构与算法亘古不变的主题,链表也是面试常考的问题,特别是手写代码常常出现,将从以下方面做个小结 [链表个数] [反转链表-循环] [反转链表-递归] [查找链表倒数第K个节点] [查找链表中间节点] [判断链表是否有环] [从尾到头打印单链表-递归] [从尾到头打印单链表-栈] [由小到大合并有序单链表-循环] [由小到大合并有序单链表-递归] 通常在Java中这样定义单链表结构 [java] view plain copy <span style="fon

MVC前提之单一入口+例子

单一入口概述 set_include_path 单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口. 打个比方,大家都要上WC,都是男生进一个门,女生进一个门,这两个门就是WC的两个入口.而现在去一个公园里面的WC,外面还有一个门,不管男女都从最外面的门进入,交了钱以后才进入里面的男厕所门或女厕所门,而这个最外面的门就是这个WC的单一入口. 实现方式  很简单,可以在访问index.ph