memccpy(3)

memccpy3

Memory until-and-including-character copy

Usage

#include <string.h>  // see memory.h(3head)

void *memccpy(size_t n; void dest[restrict n], const void src[restrict n], int c, size_t n);

Library

Standard C library (libc, -lc)

Overview

The memccpy() function copies no more than n bytes from memory area src to memory area dest, stopping when the character c is found (c is copied).

If the memory areas overlap, the results are undefined.

Return value

The memccpy() function returns a pointer to the next character in dest after c, or NULL if c was not found in the first n characters of src.

Attributes

For an explanation of the terms used in this section, see attributes(7).

InterfaceAttributeValue
memccpy()Thread safetyMT-Safe

Caveats

This function has recently (since C23) started being misused for copying strings with truncation. That's not its intended use, and is most likely to result in bugs if used for that. This function was designed for the quite different (and niche) task of implementing fgets(3).

Releases

19 releases since Debian 1.1 (Buzz); the text changed 13 times.

  1. 1.1–2.2
  2. 3.0
  3. 3.1
  4. 4.0
  5. 5.0
  6. 6.0
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. Arch

Standards

POSIX.1-2008.

History

POSIX.1-2001, SVr4, 4.3BSD.

From man-pages 6.19-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.