`
unsoundboy
  • 浏览: 62489 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

值得注意的函数

    博客分类:
  • c++
 
阅读更多
函数  严重性  解决方案
gets 最危险 使用 fgets(buf, size, stdin)。这几乎总是一个大问题!
strcpy 很危险 改为使用 strncpy。
strcat 很危险 改为使用 strncat。
sprintf 很危险 改为使用 snprintf,或者使用精度说明符。
scanf 很危险 使用精度说明符,或自己进行解析。
sscanf 很危险 使用精度说明符,或自己进行解析。
fscanf 很危险 使用精度说明符,或自己进行解析。
vfscanf 很危险 使用精度说明符,或自己进行解析。
vsprintf 很危险 改为使用 vsnprintf,或者使用精度说明符。
vscanf 很危险 使用精度说明符,或自己进行解析。
vsscanf 很危险 使用精度说明符,或自己进行解析。
streadd 很危险 确保分配的目的地参数大小是源参数大小的四倍。
strecpy 很危险 确保分配的目的地参数大小是源参数大小的四倍。
strtrns 危险 手工检查来查看目的地大小是否至少与源字符串相等。
realpath 很危险(或稍小,取决于实现) 分配缓冲区大小为 MAXPATHLEN。同样,手工检查参数以确保输入参数不超过 MAXPATHLEN。
syslog 很危险(或稍小,取决于实现) 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。
getopt 很危险(或稍小,取决于实现) 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。
getopt_long 很危险(或稍小,取决于实现) 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。
getpass 很危险(或稍小,取决于实现) 在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。
getchar 中等危险 如果在循环中使用该函数,确保检查缓冲区边界。
fgetc 中等危险 如果在循环中使用该函数,确保检查缓冲区边界。
getc 中等危险 如果在循环中使用该函数,确保检查缓冲区边界。
read 中等危险 如果在循环中使用该函数,确保检查缓冲区边界。
bcopy 低危险 确保缓冲区大小与它所说的一样大。
fgets 低危险 确保缓冲区大小与它所说的一样大。
memcpy 低危险 确保缓冲区大小与它所说的一样大。
snprintf 低危险 确保缓冲区大小与它所说的一样大。
strccpy 低危险 确保缓冲区大小与它所说的一样大。
strcadd 低危险 确保缓冲区大小与它所说的一样大。
strncpy 低危险 确保缓冲区大小与它所说的一样大。
vsnprintf 低危险 确保缓冲区大小与它所说的一样大。
分享到:
评论

相关推荐

    如何使用内联函数,请看这个资料

    此外,内联函数也可以自动地取消不值得的内联,而宏代码不能。 在 C++ 语言中,内联函数的实现是通过编译器将函数的代码放入符号表中,以便在调用时展开该函数。在调用一个内联函数时,编译器将检查函数的定义是否...

    C函数查寻 C函数 C语言 函数查寻工具

    另一个值得注意的工具是Doxygen,这是一个源代码文档生成器,能自动生成C函数的API文档。通过注释代码,开发者可以让Doxygen生成易于理解和使用的文档,这对于团队协作和维护代码库尤其有用。 对于初学者,理解C...

    对内联函数与普通函数的一些比较与分析.doc

    值得注意的是,内联函数并非总是被编译器接受。编译器会根据函数的大小、复杂性以及其他因素决定是否内联。此外,递归函数不能声明为内联,因为递归的本质会导致无限的代码膨胀。 在定义内联函数时,通常将其放在...

    C++虚函数表解析

    值得注意的是,虚函数的使用会带来一些性能开销,因为多了一次查表的过程。不过,在现代计算机硬件性能日益强大的背景下,这种开销通常可以忽略不计。 在C++中,还有其他与多态相关的特性,如`virtual`继承,它可以...

    数学函数图像大全

    值得注意的是,对数函数的定义域为\(x > 0\)。 #### 三角函数及其反函数 - **三角函数**:三角函数主要包括正弦函数、余弦函数和正切函数等。这些函数广泛应用于解决涉及角度和周期变化的问题。例如: - 正弦函数...

    oracle总结,PLSQL单行函数和组函数详解

    值得注意的是,组函数会忽略NULL值,除非使用`COALESCE()`或`NVL()`来处理。 Oracle还提供了其他类型的函数,如数学函数(如`SQRT()`、`MOD()`)、日期和时间函数(如`SYSDATE`、`ADD_MONTHS()`)以及系统信息函数...

    函数方程和函数迭代问题.pdf

    值得注意的是,文档中出现了一些特殊形式的函数迭代问题,例如“f(0) = 1, f(1) = x”,这类问题在数论和组合数学中常常被用来构建数学模型,例如在研究素数分布、排列组合等问题时。 文件内容最后也涉及了一些具体...

    重载函数模板与非模板函数示例

    值得注意的是,尽管这个函数没有使用模板关键字`template`,但它仍然可以与模板函数一起工作,并且在调用时根据参数类型自动选择最合适的版本。 #### 主函数调用分析 在`main`函数中,通过几个具体的调用来演示...

    Rand函数详细讲解

    值得注意的是,虽然rand()函数在多种应用场景中都非常有用,但它并不适合所有需要随机数的场合。在加密学、科学计算等领域,对随机数的品质要求极高,不能使用像rand()这样的简单线性同余生成器。在这种情况下,可以...

    回调函数详解

    ### 回调函数详解 #### 一、回调函数的基础概念及使用场景 **回调函数**是一种编程技术,广泛应用于各种编程语言中,特别是在...无论是处理定时器事件还是进行复杂的排序算法,回调函数都是一个值得掌握的重要工具。

    c语言va函数讲解.

    值得注意的是,main()函数虽然不是典型的va函数,但其参数列表中包含了命令行参数的个数和指针,它也是与可变参数相关的函数。 可变参数函数的使用并非仅限于系统提供的函数,在实际开发中,程序员也可以编写自己的...

    函数自动注释器,自动生成函数注释

    然而,值得注意的是,自动注释器虽然可以提供基本的注释框架,但不能完全替代人工注释。因为注释还需要包含对代码逻辑的解释、特殊情况的处理以及可能存在的问题等,这些都是工具难以自动识别的。因此,开发者在使用...

    js中函数的理解

    值得注意的是,所有`Function`构造函数的参数都必须是字符串,除了最后一个参数,它是函数体的定义。 二、构造函数 构造函数在JS中是用来创建特定类型对象的函数。与普通函数不同,构造函数通常与`new`关键字一起...

    VC 函数查询软件

    3. **解释详尽**:每个函数都有详细的说明,包括函数的功能、使用场景、参数含义以及注意事项,有助于理解和正确使用函数。 4. **实时更新**:随着C++标准的升级和库的更新,软件会定期进行更新,添加新的函数信息...

    函数重载的详解和应用

    值得注意的是,仅改变函数的返回类型而不改变其参数列表并不能构成函数重载。 #### 三、函数重载的规则 1. **函数名称必须相同**:所有被重载的函数都必须具有相同的名称。 2. **参数列表必须不同**:参数列表的...

    易语言函数转换器

    然而,值得注意的是,DLL劫持技术既可用于合法的程序兼容性修复,也可能被滥用进行非法活动。因此,使用此类工具时,必须遵守法律法规,遵循道德规范,确保技术的合法、正当使用。 在实际应用中,《易语言函数转换...

    计算机DialogProc函数.pdf

    值得注意的是,DialogProc函数不能像普通的Windows应用程序那样调用`DefWindowProc`处理未被处理的消息,因为对话框的内部机制已经包含了对这些消息的处理。 接下来,我们讨论`EndDialog`函数,它的作用是结束一个...

    vfp6.0文件处理函数

    值得注意的是,本函数不会去验证完整路径是否合法,文件是否存在,也就是说JUSTEXT()函数不会去实际操作目标文件或路径,更像是一个特定功能的字符串操作函数——返回字符串中最后的一个“.”后面的内容。

    VBAPI函数参考手册

    值得注意的是,尽管VBAPI函数参考手册提供了丰富的信息,但API的使用仍然需要开发者具备一定的系统编程基础,理解进程、线程、内存管理等概念。此外,随着Windows版本的更新,某些API函数可能会被新的函数替换,或者...

Global site tag (gtag.js) - Google Analytics