Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

memswap(3pub) [debian man page]

MEMSWAP(3pub)						       C Programmer's Manual						     MEMSWAP(3pub)

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 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. SEE ALSO
publib(3) AUTHOR
Lars Wirzenius (lars.wirzenius@helsinki.fi) Publib C Programmer's Manual MEMSWAP(3pub)

Check Out this Related Man Page

STRMAXCPY(3pub) 					       C Programmer's Manual						   STRMAXCPY(3pub)

NAME
strmaxcpy - copy at most a given number of characters of string SYNOPSIS
#include <publib.h> char *strmaxcpy(char *tgt, const char *src, size_t n); DESCRIPTION
strmaxcpy copies up to n-1 characters from the beginning of src to tgt, then adds a ''. n must be at least 1. The target string must be large enough to hold the result. Note that unlike strncpy(3), this function always terminates the result with ''. It also doesn't fill the result with extra '' charac- ters. RETURN VALUE
strmaxcpy returns its first argument. EXAMPLE
To print out the first 69 characters of a string, you might do the following (although familiarity with printf's format string might be more useful in this case). #include <stdio.h> #include <publib.h> void print42(const char *string) { char copy[43]; /* 42 + '' */ puts(strmaxcpy(copy, string, sizeof(copy))); } SEE ALSO
publib(3), strncpy(3) AUTHOR
Lars Wirzenius (lars.wirzenius@helsinki.fi) Publib C Programmer's Manual STRMAXCPY(3pub)
Man Page