#include <lcstring.h> void *memcpyp(void *target, const void *source, size_t tsize, size_t ssize, int pad);
memcpyp
copies bytes from the source
area to the target
area, padding out to the target size (tsize
) after ssize
bytes
are copied from source
. The code generated by memcpyp
uses the
MCVL instruction to perform data movement.
memcpyp
returns a pointer to the target area.
memcpyp
unless memcpyp
is undefined (by an #undef
statement) to prevent this. The
inline code may still call a library routine in special cases (for
example, if the length is a variable whose value is larger than 16 megabytes).
The code generated for memcpyp
usually uses the MVCL instruction to
perform data movement. If more than 16 megabytes of data are to be
moved, the library routine is called, which moves 16M-1 bytes at a time.
(Thus, the effect on overlapping fields can depend on whether they are
separated by as much as 16 megabytes.)
#include <lcstring.h> #include <stdio.h> main() { char *a; char name[41], input[25]; puts("Enter your name:"); a = gets(input); /* Copy input to name; pad with '*' to 40 characters. */ memcpyp(name, a, 40,strlen(a), '*'); a[40]='0'; printf("Name padded to 40 characters : %.40sn", name); }
memcpy
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.