---
name: "strmove"
section: "3pub"
platform: "linux"
package: "publib-dev"
version: "0.40-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/strmove"
---

# strmove(3pub)

make a copy of a string, handling overlapping strings

## NAME

strmove - make a copy of a string, handling overlapping strings

## SYNOPSIS

```
#include <publib.h>
char *strmove(char *tgt, const char *src);
```

## DESCRIPTION

*strmove* copies the string *src* to *tgt*, just like [*strcpy*(3)](/strcpy/3.md), but handles overlapping moves correctly (cf. [*memcpy*(3)](/memcpy/3.md) vs. [*memmove*(3)](/memmove/3.md)).

## RETURN VALUE

*strmove* returns *tgt*.

## SEE ALSO

publib(3), [strcpy(3)](/strcpy/3.md), [memcpy(3)](/memcpy/3.md), [memmove(3)](/memmove/3.md)

## AUTHOR

Lars Wirzenius (lars.wirzenius@helsinki.fi)
