aboutsummaryrefslogtreecommitdiffstats
path: root/man3/libsimple_strncmove.3
blob: d468a9398e07c023c7601af93a4ec7bde65f4dcc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
.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 <libsimple.h>

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),