.TH LIBSIMPLE_STRNCMOVE 3 libsimple .SH NAME libsimple_strncmove, libsimple_strnccpy \- copy or move a string within an array of bytes .SH SYNOPSIS .nf #include char *libsimple_strncmove(char *\fIdest\fP, const char *\fIsrc\fP, int \fIc\fP, size_t \fIn\fP); inline char *libsimple_strnccpy(char *restrict \fIdest\fP, const char *restrict \fIsrc\fP, int \fIc\fP, size_t \fIn\fP); #ifndef strncmove # define strncmove libsimple_strncmove #endif #ifndef strnccpy # define strnccpy libsimple_strnccpy #endif .fi .PP Link with .IR \-lsimple . .SH DESCRIPTION The .BR libsimple_strncmove () and .BR libsimple_strnccpy () functions copy the string, including the NUL byte that terminates it, .I src into .IR dest . However the copying stops directly after that character .I c (it is converted to a .BR char ) is copied or after .I n characters have been copied. A NUL byte is written after the last copied character unless .I n chracters have been copied. .PP The arrays may overlap in the .BR libsimple_strncmove () function but not in the .BR libsimple_strnccpy () function. .PP The comparison is case-sensitive. .SH RETURN VALUE The .BR libsimple_strncmove () and .BR libsimple_strnccpy () functions return a pointer directly behind the position of the character .I c in the string .I dest after it was copied, if the character .I c was not copied .I NULL is returned. .SH ERRORS The .BR libsimple_strncmove () and .BR libsimple_strnccpy () functions cannot fail. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .TS allbox; lb lb lb l l l. Interface Attribute Value T{ .BR libsimple_strncmove (), .br .BR libsimple_strnccpy () T} Thread safety MT-Safe T{ .BR libsimple_strncmove (), .br .BR libsimple_strnccpy () T} Async-signal safety AS-Safe T{ .BR libsimple_strncmove (), .br .BR libsimple_strnccpy () T} Async-cancel safety AC-Safe .TE .SH EXAMPLES None. .SH APPLICATION USAGE None. .SH RATIONALE None. .SH FUTURE DIRECTIONS None. .SH NOTES None. .SH HISTORY libsimple 1.1 .SH BUGS None. .SH SEE ALSO .BR libsimple_strnmove (3), .BR libsimple_stpnmove (3), .BR libsimple_strcmove (3), .BR libsimple_memcmove (3), .BR libsimple_memelemmove (3), .BR strncpy (3), .BR stpncpy (3), .BR memccpy (3),