.\" Copyright (c) Bruno Haible .\" .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA) .\" 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. .\" %%%LICENSE_END .\" .\" References consulted: .\" GNU glibc-2 source code and manual .\" .TH STRNLEN 3 2020-12-21 "GNU" "Linux Programmer's Manual" .SH NAME strnlen \- determine the length of a fixed-size string .SH SYNOPSIS .nf .B #include .PP .BI "size_t strnlen(const char *" s ", size_t " maxlen ); .fi .PP .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE .PP .BR strnlen (): .PD 0 .ad l .RS 4 .TP 4 Since glibc 2.10: _POSIX_C_SOURCE\ >=\ 200809L .TP Before glibc 2.10: _GNU_SOURCE .RE .ad .PD .SH DESCRIPTION The .BR strnlen () function returns the number of bytes in the string pointed to by .IR s , excluding the terminating null byte (\(aq\e0\(aq), but at most .IR maxlen . In doing this, .BR strnlen () looks only at the first .I maxlen characters in the string pointed to by .I s and never beyond .IR s[maxlen\-1] . .SH RETURN VALUE The .BR strnlen () function returns .IR strlen(s) , if that is less than .IR maxlen , or .I maxlen if there is no null terminating (\(aq\e0\(aq) among the first .I maxlen characters pointed to by .IR s . .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 strnlen () T} Thread safety MT-Safe .TE .SH CONFORMING TO POSIX.1-2008. .SH SEE ALSO .BR strlen (3) .SH COLOPHON This page is part of release 5.10 of the Linux .I man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man\-pages/.