 f14fb60209
			
		
	
	
		f14fb60209
		
	
	
	
	
		
			
			* Updating common/lib * Updating lib/csu * Updating lib/libc * Updating libexec/ld.elf_so * Corrected test on __minix in featuretest to actually follow the meaning of the comment. * Cleaned up _REENTRANT-related defintions. * Disabled -D_REENTRANT for libfetch * Removing some unneeded __NBSD_LIBC defines and tests Change-Id: Ic1394baef74d11b9f86b312f5ff4bbc3cbf72ce2
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" $NetBSD: getprogname.3,v 1.8 2011/05/21 19:06:44 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 May 21, 2011
 | |
| .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
 | |
| explicitly has no effect.
 | |
| However, portable programs that wish to use
 | |
| .Fn getprogname
 | |
| should call
 | |
| .Fn setprogname
 | |
| from
 | |
| .Fn main .
 | |
| On operating systems where
 | |
| .Fn getprogname
 | |
| and
 | |
| .Fn setprogname
 | |
| are implemented via a portability library, this call is needed to
 | |
| make the name available.
 | |
| .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.
 |