man-pages/man3/strnlen.3

63 lines
1.5 KiB
Groff

.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" References consulted:
.\" GNU glibc-2 source code and manual
.\"
.TH STRNLEN 3 2010-09-15 "GNU" "Linux Programmer's Manual"
.SH NAME
strnlen \- determine the length of a fixed-size string
.SH SYNOPSIS
.nf
.B #define _GNU_SOURCE
.sp
.B #include <string.h>
.sp
.BI "size_t strnlen(const char *" s ", size_t " maxlen );
.fi
.sp
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
.sp
.BR strnlen ():
.PD 0
.ad l
.RS 4
.TP 4
Since glibc 2.10:
_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
.TP
Before glibc 2.10:
_GNU_SOURCE
.RE
.ad
.PD
.SH DESCRIPTION
The
.BR strnlen ()
function returns the number of characters in the string
pointed to by \fIs\fP, not including the terminating \(aq\\0\(aq character,
but at most \fImaxlen\fP.
In doing this,
.BR strnlen ()
looks only at the first
\fImaxlen\fP characters at \fIs\fP and never beyond \fIs+maxlen\fP.
.SH "RETURN VALUE"
The
.BR strnlen ()
function returns \fIstrlen(s)\fP, if that is less than
\fImaxlen\fP, or \fImaxlen\fP
if there is no \(aq\\0\(aq character among the first
\fImaxlen\fP characters pointed to by \fIs\fP.
.SH "CONFORMING TO"
This function is a GNU extension.
.SH "SEE ALSO"
.BR strlen (3),
.BR feature_test_macros (7)