table of contents
- trixie 1:4.27.0-1
- trixie-backports 1:4.30.2-1~bpo13+1
- unstable 1:4.31.0-1
| strcpy(3) | Library Functions Manual | strcpy(3) |
NAZWA¶
strcpy, strcat - kopiuje lub łączy łańcuch znaków
BIBLIOTEKA¶
Standardowa biblioteka C (libc, -lc)
SKŁADNIA¶
#include <string.h>
char *strcpy(char *restrict dst, const char *restrict src); char *strcat(char *restrict dst, const char *restrict src);
OPIS¶
- strcpy()
- Funkcja kopiuje łańcuch, na który wskazuje src, do łańcucha w buforze, na który wskazuje dst. To programista jest odpowiedzialny za alokację odpowiednio dużego bufora docelowego tj. strlen(src) + 1.
- Jest to równoznaczne z
-
stpcpy(dst, src), dst
- strcat()
- Funkcja dołącza łańcuch, na który wskazuje src, po łańcuchu, na który wskazuje dst (nadpisując jego końcowy bajt null). To programista jest odpowiedzialny za alokację odpowiednio dużego bufora docelowego, tj. strlen(dst) + strlen(src) + 1.
- Jest to równoznaczne z
-
stpcpy(strnul(dst), src), dst
WARTOŚĆ ZWRACANA¶
Funkcje te zwracają dst.
ATRYBUTY¶
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
| Interfejs | Atrybut | Wartość |
| strcpy(), strcat() | Bezpieczeństwo wątkowe | MT-bezpieczne |
STANDARDY¶
C11, POSIX.1-2008.
HISTORIA¶
POSIX.1-2001, C89, SVr4, 4.3BSD.
ZASTRZEŻENIA¶
Łańcuchy src i dst nie mogą na siebie nachodzić.
Jeśli bufor docelowy nie jest wystarczającą duży, zachowanie jest niezdefiniowane. Zob. opis _FORTIFY_SOURCE w podręczniku feature_test_macros(7).
strcat() może być bardzo mało wydajny. Proszę zapoznać się z historią o malarzu Shlemielu.
PRZYKŁADY¶
#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(void)
{
char *buf1;
size_t len, size;
size = strlen("Witaj ") + strlen("świecie") + strlen("!") + 1;
buf1 = malloc(sizeof(*buf1) * size);
if (buf1 == NULL)
err(EXIT_FAILURE, "malloc()");
strcpy(buf1, "Witaj ");
strcat(buf1, "świecie");
strcat(buf1, "!");
len = strlen(buf1);
printf("[len = %zu]: ", len);
puts(buf1); // "Witaj świecie!"
free(buf1);
exit(EXIT_SUCCESS);
}
ZOBACZ TAKŻE¶
stpcpy(3), strdup(3), string(3), wcscpy(3), string_copying(7)
TŁUMACZENIE¶
Tłumaczenie niniejszej strony podręcznika: Jarosław Beczek <bexx@poczta.onet.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
| 25 lutego 2026 r. | Linux man-pages 6.18 |