aboutsummaryrefslogtreecommitdiffstats
path: root/man3/libsimple_rawmemelem_inv.3
blob: 3e39138363fd992330b5716b7553a69ba7d7b75a (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
.TH LIBSIMPLE_RAWMEMELEM_INV 3 libsimple
.SH NAME
libsimple_rawmemelem_inv \- find different aligned byte string in memory

.SH SYNOPSIS
.nf
#include <libsimple.h>

void *libsimple_rawmemelem_inv(const void *\fIhaystack\fP, const void *\fIneedle\fP, size_t \fIwidth\fP);

#ifndef rawmemelem_inv
# define rawmemelem_inv libsimple_rawmemelem_inv
#endif
.fi
.PP
Link with
.IR \-lsimple .

.SH DESCRIPTION
The
.BR libsimple_rawmemelem_inv ()
function scans the memory segment
.IR haystack ,
for the first occurence of a byte string
different from
.I needle
with the size
.IR width ,
and with an offset equivalent to zero modulo
.IR width .
.PP
The
.BR libsimple_rawmemchr ()
function assumes there is at least one
occurence, its behaviour is undefined
if this is not the case.
.PP
The comparison is case-sensitive.

.SH RETURN VALUE
The
.BR libsimple_rawmemelem_inv ()
function returns the pointer
.I s
with a minimal offset such that
.IR memcmp(r,needle,width) ,
where
.I r
is the returned pointer, and such that
the offset is equivalent to zero modulo
.IR width .
If no such offset exists, the behaviour is undefined.

.SH ERRORS
The
.BR libsimple_rawmemelem_inv ()
function 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_rawmemelem_inv ()
T}	Thread safety	MT-Safe
T{
.BR libsimple_rawmemelem_inv ()
T}	Async-signal safety	AS-Safe
T{
.BR libsimple_rawmemelem_inv ()
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_rawmemelem (3),
.BR libsimple_rawmemrelem_inv (3),
.BR libsimple_memelem_inv (3),
.BR libsimple_rawmemchr_inv (3)