Formatted strncat(3): strncat(3) Library Functions Manual strncat(3) NAME strncat - concatenate a null‐padded character sequence into a string LIBRARY Standard C library (libc, -lc) SYNOPSIS #include <string.h> char *strncat(char *restrict dst, const char src[restrict .sz], size_t sz); DESCRIPTION This function catenates the input character sequence contained in a null‐padded fixed‐width buffer, into a string at the buffer pointed to by dst. The programmer is responsible for allocating a buffer large enough, that is, strlen(dst) + strnlen(src, sz) + 1. An implementation of this function might be: char * strncat(char *restrict dst, const char *restrict src, size_t sz) { int len; char *end; len = strnlen(src, sz); end = dst + strlen(dst); end = mempcpy(end, src, len); *end = '\0'; return dst; } RETURN VALUE strncat() returns dest. ATTRIBUTES For an explanation of the terms used in this section, see attrib‐ utes(7). ┌────────────────────────────────────────────┬───────────────┬─────────┐ │Interface │ Attribute │ Value │ ├────────────────────────────────────────────┼───────────────┼─────────┤ │strncat() │ Thread safety │ MT‐Safe │ └────────────────────────────────────────────┴───────────────┴─────────┘ STANDARDS POSIX.1‐2001, POSIX.1‐2008, C89, C99, SVr4, 4.3BSD. CAVEATS The name of this function is confusing. This function has no relation to strncpy(3). If the destination buffer is not large enough, the behavior is unde‐ fined. See _FORTIFY_SOURCE in feature_test_macros(7). BUGS This function can be very inefficient. Read about Shlemiel the painter ⟨https://www.joelonsoftware.com/2001/12/11/back-to-basics/⟩;. EXAMPLES #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char buf[BUFSIZ]; size_t len; buf[0] = '\0'; // There’s no ’cpy’ function to this ’cat’. strncat(buf, "Hello XXX", 6); strncat(buf, "world", 42); strncat(buf, "!", 1); len = strlen(buf); printf("[len = %zu]: ", len); puts(buf); // "Hello world!" exit(EXIT_SUCCESS); } SEE ALSO string(3), string_copy(3) Linux man‐pages (unreleased) (date) strncat(3) -- <http://www.alejandro-colomar.es/>
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature