Manual Reference Pages - MEMSWAP (3)
memswap - swap the contents of two memory blocks
void memswap(void *block1, void *block2, size_t n);
memswap will swap the contents of the two blocks pointed by
its first two arguments. The last argument gives the size of the
To swap two structs, one might do the following.
struct tm tm1, tm2;
memswap(&tm1, &tm2, sizeof(struct tm));
Using memswap to swap small portions of memory is inefficient.
It is not worth it to use it to swap variables of any of the basic
types, for instance. Use inline code for such cases. However, for
large portions of memory, e.g., arrays, it is convenient.
memswap cant swap variables whose address cant be taken. This
excludes variables with the register specifier and bitfields in
structs. But then, there is no way to write a function (or macro) that
can handle any kind of arguments. Life is hard.
Lars Wirzenius (firstname.lastname@example.org)
|Publib ||MEMSWAP (3) ||C Programmer's Manual |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.