 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			117 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" $NetBSD: getprogname.3,v 1.7 2008/03/29 16:51:40 dholland Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 2001 Christopher G. Demetriou
 | |
| .\" All rights reserved.
 | |
| .\"
 | |
| .\" 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. All advertising materials mentioning features or use of this software
 | |
| .\"    must display the following acknowledgement:
 | |
| .\"          This product includes software developed for the
 | |
| .\"          NetBSD Project.  See http://www.NetBSD.org/ for
 | |
| .\"          information about NetBSD.
 | |
| .\" 4. The name of the author may not be used to endorse or promote products
 | |
| .\"    derived from this software without specific prior written permission.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
 | |
| .\"
 | |
| .\" <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
 | |
| .\"
 | |
| .Dd March 29, 2008
 | |
| .Dt GETPROGNAME 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm getprogname ,
 | |
| .Nm setprogname
 | |
| .Nd get/set the name of the current program
 | |
| .Sh LIBRARY
 | |
| .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In stdlib.h
 | |
| .Ft const char *
 | |
| .Fn getprogname "void"
 | |
| .Ft void
 | |
| .Fn setprogname "const char *name"
 | |
| .Sh DESCRIPTION
 | |
| These utility functions get and set the current program's name
 | |
| as used by various error-reporting functions.
 | |
| .Pp
 | |
| .Fn getprogname
 | |
| returns the name of the current program.
 | |
| This function is typically useful when generating error messages
 | |
| or other diagnostic output.
 | |
| If the program name has not been set,
 | |
| .Fn getprogname
 | |
| will return
 | |
| .Dv NULL .
 | |
| .Pp
 | |
| .Fn setprogname
 | |
| sets the name of the current program to be the last pathname
 | |
| component of the
 | |
| .Fa name
 | |
| argument.
 | |
| It should be invoked at the start of the program, using the
 | |
| .Fa argv[0]
 | |
| passed into the program's
 | |
| .Fn main
 | |
| function.
 | |
| A pointer into the string pointed to by the
 | |
| .Fa name
 | |
| argument is kept as the program name.
 | |
| Therefore, the string pointed to by
 | |
| .Fa name
 | |
| should not be modified during the rest of the program's operation.
 | |
| .Pp
 | |
| A program's name can only be set once, and in
 | |
| .Nx
 | |
| that is actually
 | |
| done by program start-up code that is run before
 | |
| .Fn main
 | |
| is called.
 | |
| Therefore, in
 | |
| .Nx ,
 | |
| calling
 | |
| .Fn setprogname
 | |
| from
 | |
| .Fn main
 | |
| has no effect.
 | |
| However, it does serve to increase the portability of the program:
 | |
| on other operating systems,
 | |
| .Fn getprogname
 | |
| and
 | |
| .Fn setprogname
 | |
| may be implemented by a portability library, and a call to
 | |
| .Fn setprogname
 | |
| allows that library to know the program name without
 | |
| modifications to that system's program start-up code.
 | |
| .Sh SEE ALSO
 | |
| .Xr err 3 ,
 | |
| .Xr setproctitle 3
 | |
| .Sh HISTORY
 | |
| The
 | |
| .Nm getprogname
 | |
| and
 | |
| .Nm setprogname
 | |
| function calls appeared in
 | |
| .Nx 1.6 .
 | |
| .Sh RESTRICTIONS
 | |
| The string returned by
 | |
| .Fn getprogname
 | |
| is supplied by the invoking process and should not be trusted by
 | |
| setuid or setgid programs.
 |