The buffer manipulation routines are used to work on memory buffers on a character-by-character basis. A buffer is an array of characters like a string, however, a buffer is usually not terminated with a null character ('\0'). For this reason, these routines require a buffer length or count argument.
All of these routines are implemented as functions. Function prototypes are included in the STRING.H include file.
| Routine | Attributes | Description |
|---|
| fmemcpy | reentrant; | Copies a specified number of data bytes from one far memory buffer to another. |
| fmemset | reentrant | Initializes a specified number of data bytes in far memory. |
| hmemccpy | reentrant | Uses huge pointers and copies data bytes from one buffer to another until a specified character or specified number of characters has been copied. |
| hmemchr | reentrant | Uses huge pointers and returns a pointer to the first occurrence of a specified character in a buffer. |
| hmemcmp | reentrant | Uses huge pointers and compares a given number of characters from two different buffers. |
| hmemcpy | reentrant | Uses huge pointers and copies a specified number of data bytes from one buffer to another. |
| hmemmove | reentrant | Uses huge pointers and copies a specified number of data bytes from one buffer to another. This routine is typically used when the two buffers may overlap. |
| hmemset | reentrant | Uses huge pointers and initializes a specified number of data bytes in a buffer to a specified character value. |
| memccpy | reentrant | Copies data bytes from one buffer to another until a specified character or specified number of characters has been copied. |
| memchr | reentrant | Returns a pointer to the first occurrence of a specified character in a buffer. |
| memcmp | reentrant | Compares a given number of characters from two different buffers. |
| memcpy | reentrant | Copies a specified number of data bytes from one buffer to another. |
| memmove | reentrant | Copies a specified number of data bytes from one buffer to another. This routine is typically used when the two buffers may overlap. |
| memset | reentrant | Initializes a specified number of data bytes in a buffer to a specified character value. |
| xmemcpy | reentrant | Copies a specified number of data bytes from one xdata memory buffer to another. |
| xmemset | reentrant | Initializes a specified number of data bytes in xdata memory. |