当前位置: 首页 > 2016年8月发布的所有日志
  • C/C++ 代码安全(五)

    C/C++ 代码安全(五)

    规则: 不要使用rand( ) 函数生成伪随机数,这个函数不保证不保证产生随机序列质量,比较好预测。使用random( )  替换。 规则: 正确的设置伪随机数生成器的种子,在random() 之前调用srandom( ) ,以设置伪随机数生成器。 规则: 不要向asctime( ) 函数提供无效数据。 规则: 确保控制永远不会到达非void 函数的结束位 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(四)

    C/C++ 代码安全(四)

    规则: 不要访问已经释放的内存。使用引用被free( ) 或者 realloc( ) 函数调用释放的内存指针值是未确定的。 需要注意的一点是,realloc( )  可能会释放原来的指针。 规则: 在不需要时释放动态分配的内存。 规则: 动态分配和复制包含灵活数组成员结构。为了避免未定义行为,包含灵活数组成员的结构应该始终动态分配, ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(三)

    C/C++ 代码安全(三)

    规则: 确保无符号整数运算不产生回绕,如果底层整数表示无法表示无符号整数运算的结果,该值可能发生回绕。在8086处理器上整数溢出也就仅仅会发生一个标志位修改罢了。所以我们还是要注意整数溢出发生回绕现象。 C /*错误实例,这很有可能发生回绕*/ void func(unsigned int ui_a,unsi ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(二)

    C/C++ 代码安全(二)

    规则: 声明的每一个对象都必须具有正确的存储期。 对象的生命周期是程序执行的一部分,在此期间保证对象保留存储空间。任何形式的访问已经超出生命周期的行为都是未定义的。 引用超出生命周期的对象,可能导致攻击者执行任意代码。 规则: 在使用前声明表示符,不要隐含类型。 规则: 不要声明具有冲突链接类别的表示 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(一)

    C/C++ 代码安全(一)

    规则1: 不通过链接创建通用字符串。 C11标准:如果匹配通用字符名称的字符序列由符号链接生成,将产生未定义行为。 C #define assign(uc1,uc2,val) uc1##uc2 = val void func(){ int u0401; assign(u04,01,4); printf("u0401 = %d\n",u0401); } int main() ...

    阅读全文
    作者:root | 分类:C, C/C++
  • 随笔–即将大三的我

    随笔–即将大三的我

    好久没有写点什么了,最近几天也过的很一般,我并不是想要天天高压式的生活,我也不是一个所为的“技术”的追求者,技术说到底不过是经验和科学具体化的结合体。没有什么值得吹嘘的。就像我曾经和同学说起过,我会16/32/64的汇编语言,他立刻说汇编很难的,你好厉害之类的一堆一堆,我真心不知道汇编有什么难的,我觉得这 ...

    阅读全文
    作者:root | 分类:生活点滴
  • 内存管理器(二十四)引用计数

    内存管理器(二十四)引用计数

    引用计数 一种直接的内存清扫方式,通过遍历可以直接的判定一个对象的存活性。 这个思想可以说是非常的简单,有新对象就增加新对象的引用计数,并且减少旧对象的引用计数,当某个引用计数的值为0的时候将它回收。 C new(){ ref = allocate(); if (ref == NULL){ print ...

    阅读全文
    作者:root | 分类:内存管理
  • 工程控制论 理论概况

    工程控制论 理论概况

    计算机软件的编写本质上是一种系统工程,现代工程有系统论,信息论,控制论,三个理论组合而成,这三个理论相辅相成,学习现代工程控制论有助于在软件的设计与实现。这里我们不详细展开说,仅仅记录一些方法论,需要使用相关方法时。我们知道使用哪种方法就可以了。 控制系统的工作原理及其组成: 工作原理,开环控制, ...

    阅读全文
    作者:root | 分类:操作系统
  • ParalleX OS 补充设计草稿

    ParalleX OS 补充设计草稿

    ParalleX 补充设计草稿 在上一篇设计方向讨论稿里,我们虽然讨论了大体结构化设计,但是局限于细节没有设计与说清楚操作系统的几个核心概念,首先,我们来回顾下,设计操作系统的几个关键要素。 我们设计操作系统的目的: 第一是为了让操作系统帮助我们管理硬件资源。 第二是帮助我们让操作系统帮助我们运行程序。 第三 ...

    阅读全文
    作者:root | 分类:操作系统
  • 内存管理器(二十三) 标记-复制式 回收算法

    内存管理器(二十三) 标记-复制式 回收算法

    标记-复制式回收算法 GC 机制在一个系统中占重要地位,但是在使用过程中占用整体时间的最小部分,赋值器的执行开销产生的影响反而切实的影响这整个系统的性能。 半区复制回收 基本复制回收器会将堆划分为两个大小相等的半区,分别设置为来源空间,目标空间。 C /*半区复制回收算法*/ / ...

    阅读全文
    作者:root | 分类:内存管理