memins(3) insert bytes at beginning of memory block

SYNOPSIS


#include <publib.h>
void *memins(void *tgt, size_t tgtsize, const void *src, size_t srcsize);

DESCRIPTION

memins inserts srcsize bytes from src at the beginning of tgt, but moves the first tgtsize out of the way. The source and target memory blocks must not overlap.

RETURN VALUE

memins returns its first argument.

EXAMPLE

To insert a new element at the ith position of an array, one might do the following.

int new, array[10];
memins(array+i, (10-i-1)*sizeof(array[0]), &new, sizeof(new));

Please note that the above code carefully avoids the trap of moving the last element of the array past the end of the array.

AUTHOR

Lars Wirzenius ([email protected])