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