Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MEMSWAP(3)		     C Programmer's Manual		    MEMSWAP(3)

NAME
       memswap - swap the contents of two memory blocks

SYNOPSIS
       #include	<publib.h>
       void memswap(void *block1, void *block2,	size_t n);

DESCRIPTION
       memswap	will  swap the contents	of the two blocks pointed by its first
       two arguments.  The last	argument gives the size	of the memory blocks.

EXAMPLE
       To swap two structs, one	might do the following.

	    struct tm tm1, tm2;

	    memswap(&tm1, &tm2,	sizeof(struct tm));

BUGS
       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	can't  swap  variables whose address can't be taken.  This ex-
       cludes variables	with the register specifier and	bitfields in  structs.
       But  then, there	is no way to write a function (or macro) that can han-
       dle any kind of arguments.  Life	is hard.

SEE ALSO
       publib(3)

AUTHOR
       Lars Wirzenius (lars.wirzenius@helsinki.fi)

Publib			     C Programmer's Manual		    MEMSWAP(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | BUGS | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=memswap&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help