.TH LIBSIMPLE_UNLIST 3 libsimple .SH NAME libsimple_unlist \- remove item for array and keep order .SH SYNOPSIS .nf #include void libsimple_unlist(void *\fIlist\fP, size_t \fIi\fP, size_t *\fInp\fP, size_t \fIwidth\fP); void LIBSIMPLE_UNLIST(\fItype\fP *\fIlist\fP, size_t \fIi\fP, size_t *\fInp\fP); #ifndef unlist # define unlist libsimple_unlist #endif #ifndef UNLIST # define UNLIST LIBSIMPLE_UNLIST #endif .fi .PP Link with .IR \-lsimple . .SH DESCRIPTION The .BR libsimple_unlist () function removes the .IR i th element from .IR list , and pushes up all following elements one step, so next element take the removed elements position. The .I width parameter shall be the size of each element, in bytes, .RI ( sizeof(*list) in all sane circumstances). .I np shall be a pointer to the number of elements stored in .IR list , .I *np will be set to .IR *np-1 . The function assumes that .IR i<*np . .PP .BR LIBSIMPLE_UNLIST () is a macro-wrapper for the .BR libsimple_unlist () function which does not have the parameter .IR width , instead it is inferred from the type of .IR list ; as such, .I type must be a complete, non-void type. .SH RETURN VALUE None. .SH ERRORS The .BR libsimple_unlist () and .BR LIBSIMPLE_UNLIST () 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_unlist (), .br .BR LIBSIMPLE_UNLIST () T} Thread safety MT-Safe T{ .BR libsimple_unlist (), .br .BR LIBSIMPLE_UNLIST () T} Async-signal safety AS-Safe T{ .BR libsimple_unlist (), .br .BR LIBSIMPLE_UNLIST () 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.0 .SH BUGS None. .SH SEE ALSO .BR memmove (3)