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
|
.TH LIBSIMPLE_MEMRELEM_INV 3 libsimple
.SH NAME
libsimple_memrelem_inv \- find different aligned byte string in memory
.SH SYNOPSIS
.nf
#include <libsimple.h>
void *libsimple_memrelem_inv(const void *\fIhaystack\fP, const void *\fIneedle\fP, size_t \fIwidth\fP, size_t \fIn\fP);
#ifndef memrelem_inv
# define memrelem_inv libsimple_memrelem_inv
#endif
.fi
.PP
Link with
.IR \-lsimple .
.SH DESCRIPTION
The
.BR libsimple_memrelem_inv ()
function scans the memory segment
.IR haystack ,
with the size
.IR n*width ,
for the last 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 comparison is case-sensitive.
.SH RETURN VALUE
The
.BR libsimple_memrelem_inv ()
function returns the pointer
.I s
with a maximal 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,
.B NULL
is returned.
.SH ERRORS
The
.BR libsimple_memrelem_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_memrelem_inv ()
T} Thread safety MT-Safe
T{
.BR libsimple_memrelem_inv ()
T} Async-signal safety AS-Safe
T{
.BR libsimple_memrelem_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_memrelem (3),
.BR libsimple_rawmemrelem_inv (3),
.BR libsimple_memelem_inv (3),
.BR libsimple_memrmem_inv (3),
.BR libsimple_memrchr_inv (3)
|