mirror of
				https://gitlab.freedesktop.org/libbsd/libbsd.git
				synced 2025-10-26 10:32:59 +01:00 
			
		
		
		
	 59a21c7fb8
			
		
	
	59a21c7fb8
	
	
	
		
			
			Include BSD versions when functions were introduced. Add mention whether these are BSD extensions.
		
			
				
	
	
		
			120 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| .\" Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
 | |
| .\" Copyright (c) 1990, 1991, 1993
 | |
| .\"	The Regents of the University of California.  All rights reserved.
 | |
| .\"
 | |
| .\" This code is derived from software contributed to Berkeley by
 | |
| .\" Chris Torek and the American National Standards Committee X3,
 | |
| .\" on Information Processing Systems.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer in the
 | |
| .\"    documentation and/or other materials provided with the distribution.
 | |
| .\" 3. Neither the name of the University nor the names of its contributors
 | |
| .\"    may be used to endorse or promote products derived from this software
 | |
| .\"    without specific prior written permission.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | |
| .\" SUCH DAMAGE.
 | |
| .\"
 | |
| .\"     @(#)strstr.3	8.1 (Berkeley) 6/4/93
 | |
| .\" $FreeBSD$
 | |
| .\"
 | |
| .Dd October 11, 2001
 | |
| .Dt strstr 3bsd
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm strnstr
 | |
| .Nd locate a substring in a string
 | |
| .Sh LIBRARY
 | |
| .ds str-Lb-libbsd Utility functions from BSD systems (libbsd, \-lbsd)
 | |
| .ds doc-str-Lb-libbsd \*[str-Lb-libbsd]
 | |
| .Lb libbsd
 | |
| .Sh SYNOPSIS
 | |
| .In string.h
 | |
| (See
 | |
| .Xr libbsd 7
 | |
| for include usage.)
 | |
| .Ft char *
 | |
| .Fn strnstr "const char *big" "const char *little" "size_t len"
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Fn strnstr
 | |
| function
 | |
| locates the first occurrence of the null-terminated string
 | |
| .Fa little
 | |
| in the string
 | |
| .Fa big ,
 | |
| where not more than
 | |
| .Fa len
 | |
| characters are searched.
 | |
| Characters that appear after a
 | |
| .Ql \e0
 | |
| character are not searched.
 | |
| Since the
 | |
| .Fn strnstr
 | |
| function is a
 | |
| .Fx
 | |
| specific API, it should only be used when portability is not a concern.
 | |
| .Sh RETURN VALUES
 | |
| If
 | |
| .Fa little
 | |
| is an empty string,
 | |
| .Fa big
 | |
| is returned;
 | |
| if
 | |
| .Fa little
 | |
| occurs nowhere in
 | |
| .Fa big ,
 | |
| .Dv NULL
 | |
| is returned;
 | |
| otherwise a pointer to the first character of the first occurrence of
 | |
| .Fa little
 | |
| is returned.
 | |
| .Sh EXAMPLES
 | |
| The following sets the pointer
 | |
| .Va ptr
 | |
| to
 | |
| .Dv NULL ,
 | |
| because only the first 4 characters of
 | |
| .Va largestring
 | |
| are searched:
 | |
| .Bd -literal -offset indent
 | |
| const char *largestring = "Foo Bar Baz";
 | |
| const char *smallstring = "Bar";
 | |
| char *ptr;
 | |
| 
 | |
| ptr = strnstr(largestring, smallstring, 4);
 | |
| .Ed
 | |
| .Sh SEE ALSO
 | |
| .Xr strstr 3 ,
 | |
| .Xr strcasestr 3 ,
 | |
| .Xr memchr 3 ,
 | |
| .Xr memmem 3 ,
 | |
| .Xr strchr 3 ,
 | |
| .Xr strcspn 3 ,
 | |
| .Xr strpbrk 3 ,
 | |
| .Xr strrchr 3 ,
 | |
| .Xr strsep 3 ,
 | |
| .Xr strspn 3 ,
 | |
| .Xr strtok 3 ,
 | |
| .Xr wcsstr 3
 | |
| .Sh HISTORY
 | |
| The
 | |
| .Fn strnstr
 | |
| function originated in
 | |
| .Fx .
 |