Best practice for memcpy in C
문제
Is it same deprecated in GNU as in Microsoft C runtime?
Is deprecation, if there is such in GNU C, enforced by later standard of C after 89/90 or the compiler?
If it's GNU C compiler, since when and does it provide such a secure alternative memory operating function like
memcpy_s
to the deprecatedmemcpy
in Microsoft C?If it's later C standard after 89/90, since when and does it provide such a secure alternative memory operating function like
memcpy_s
to the deprecatedmemcpy
in Microsoft C?If no such deprecation in GNU C runtime, is there a function which is neither among those memory operations (name started with
mem
) nor the one I know asbcopy
, but I can use to copy memory safe in that it takes a parameter about length of the destination?If there is/are, could you please list as many as possible?
해결책
memcpy_s
has been in added since C11 but is an optional extension. memcpy
has not been deprecated in C and is not an obsolescent function.
glibc
as of now does not support _s
functions and there is no plan (AFAIK) for glibc
team to support them.
다른 팁
The function memcpy
is not deprecated. It's one of the safest and most useful functions in the library. The memcpy_s
function became standard in C11 (optional, see "Bounds-checking interface" in Annex K).