C语言中memcpy的最佳实践

时间:2012-08-18 10:11:44

标签: c memcpy tr24731

  1. 在GNU中是否与在Microsoft C运行时中弃用相同?

  2. 是否弃用,如果在GNU C中有这样的内容,在89/90或编译器之后由C的后续标准强制执行?

  3. 如果它是GNU C编译器,那么它什么时候提供了像{C} {}}这样的安全替代内存操作函数到Microsoft C中已弃用的memcpy_s

  4. 如果它是89/90之后的C标准,那么它什么时候提供像memcpy这样安全的替代内存操作函数到Microsoft C中已弃用的memcpy_s

  5. 如果在GNU C运行时没有这样的弃用,是否有一个函数既不是那些内存操作(名称以memcpy开头)也不是我所知道的mem,但我可以用来复制内存安全,因为它需要一个关于目标长度的参数吗?

  6. 如果有,请列出尽可能多的人吗?

2 个答案:

答案 0 :(得分:6)

不推荐使用memcpy函数。它是库中最安全,最有用的功能之一。 memcpy_s函数在C11中成为标准函数(可选,请参阅附录K中的“ Bounds-checking interface ”。

答案 1 :(得分:6)

自C11以来已添加

memcpy_s,但它是可选的扩展名。 memcpy在C中尚未弃用,并且不是过时功能。

截至目前,

glibc不支持_s个功能,glibc团队没有计划(AFAIK)支持这些功能。