1*b65dd972SRobert Mustacchi.\" 2*b65dd972SRobert Mustacchi.\" This file and its contents are supplied under the terms of the 3*b65dd972SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 4*b65dd972SRobert Mustacchi.\" You may only use this file in accordance with the terms of version 5*b65dd972SRobert Mustacchi.\" 1.0 of the CDDL. 6*b65dd972SRobert Mustacchi.\" 7*b65dd972SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 8*b65dd972SRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 9*b65dd972SRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 10*b65dd972SRobert Mustacchi.\" 11*b65dd972SRobert Mustacchi.\" 12*b65dd972SRobert Mustacchi.\" Copyright (c) 2014, Joyent, Inc. 13*b65dd972SRobert Mustacchi.\" 14*b65dd972SRobert Mustacchi.Dd "Dec 22, 2014" 15*b65dd972SRobert Mustacchi.Dt GETPROGNAME 3C 16*b65dd972SRobert Mustacchi.Os 17*b65dd972SRobert Mustacchi.Sh NAME 18*b65dd972SRobert Mustacchi.Nm getprogname , 19*b65dd972SRobert Mustacchi.Nm setprogname 20*b65dd972SRobert Mustacchi.Nd get or set the program name 21*b65dd972SRobert Mustacchi.Sh SYNOPSIS 22*b65dd972SRobert Mustacchi.In stdlib.h 23*b65dd972SRobert Mustacchi.Ft const char * 24*b65dd972SRobert Mustacchi.Fo getprogname 25*b65dd972SRobert Mustacchi.Fa void 26*b65dd972SRobert Mustacchi.Fc 27*b65dd972SRobert Mustacchi.Ft void 28*b65dd972SRobert Mustacchi.Fo setprogname 29*b65dd972SRobert Mustacchi.Fa "const char *progname" 30*b65dd972SRobert Mustacchi.Fc 31*b65dd972SRobert Mustacchi.Sh DESCRIPTION 32*b65dd972SRobert MustacchiThe 33*b65dd972SRobert Mustacchi.Fn getprogname 34*b65dd972SRobert Mustacchifunction is used to obtain the program name. The program name is set at 35*b65dd972SRobert Mustacchiprogram start-up, before 36*b65dd972SRobert Mustacchi.Fn main 37*b65dd972SRobert Mustacchiis called. Note, other operating systems, do not guarantee that a 38*b65dd972SRobert Mustacchiprogram name has been set at start up time and therefore may return a 39*b65dd972SRobert Mustacchinull pointer if 40*b65dd972SRobert Mustacchi.Fn setprogname 41*b65dd972SRobert Mustacchihas not been called. 42*b65dd972SRobert Mustacchi.Lp 43*b65dd972SRobert MustacchiThe 44*b65dd972SRobert Mustacchi.Fn setprogname 45*b65dd972SRobert Mustacchifunction is used to change the program name to another value. The 46*b65dd972SRobert Mustacchiargument 47*b65dd972SRobert Mustacchi.Fa progname 48*b65dd972SRobert Mustacchimust contain a null terminatd character string, whose last component 49*b65dd972SRobert Mustacchiwhich will become the new program name. 50*b65dd972SRobert Mustacchi.Sh RETURN VALUES 51*b65dd972SRobert MustacchiThe 52*b65dd972SRobert Mustacchi.Fn getprogname 53*b65dd972SRobert Mustacchifunction always returns the current program name. The program name is 54*b65dd972SRobert Mustacchialways set, it will not return a null pointer. 55*b65dd972SRobert Mustacchi.Sh INTERFACE STABILITY 56*b65dd972SRobert Mustacchi.Sy Committed 57*b65dd972SRobert Mustacchi.Sh MT-LEVEL 58*b65dd972SRobert Mustacchi.Fn getprogname 59*b65dd972SRobert Mustacchiis 60*b65dd972SRobert Mustacchi.Sy MT-Safe . 61*b65dd972SRobert Mustacchi.Lp 62*b65dd972SRobert Mustacchi.Fn setprogname 63*b65dd972SRobert Mustacchiis 64*b65dd972SRobert Mustacchi.Sy Unsafe . 65*b65dd972SRobert Mustacchi.Sh SEE ALSO 66*b65dd972SRobert Mustacchi.Xr err 3c , 67*b65dd972SRobert Mustacchi.Xr attributes 5 68*b65dd972SRobert Mustacchi.Sh NOTES 69*b65dd972SRobert MustacchiThe use of 70*b65dd972SRobert Mustacchi.Fn setprogname 71*b65dd972SRobert Mustacchidoes not modify the program name as reported by utilities like 72*b65dd972SRobert Mustacchi.Xr ps 1 73*b65dd972SRobert Mustacchior 74*b65dd972SRobert Mustacchi.Xr pargs 1 ; 75*b65dd972SRobert Mustacchihowever, it does ensure a consistent program name for the 76*b65dd972SRobert Mustacchi.Xr err 3C 77*b65dd972SRobert Mustacchifamily of functions. 78