Date: Fri, 4 May 2001 21:42:37 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Dima Dorfman <dima@unixfreak.org> Cc: audit@FreeBSD.ORG Subject: Re: {get,set}progname functions Message-ID: <Pine.BSF.4.21.0105042117490.60028-100000@besplex.bde.org> In-Reply-To: <20010502060949.23EFC3E28@bazooka.unixfreak.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 1 May 2001, Dima Dorfman wrote: > Bruce Evans <bde@zeta.org.au> writes: > > I think setprogname() should not be a stub. setproctitle() can be > > used to change the process's name, so why should setprogname() be > > weaker? Perhaps setproctitle() should affect __progname (or at least > > the result returned by getprogname()), and setprogname() shouldn't > > exist. > > setproctitle() and setprogname() are supposed to change different > things. setproctitle() sets the name of the program as it should show > up in ps(1). Things like sendmail use it to show their status (e.g., > "sendmail: accepting connections"). Conversely, setprogname() sets > the program name as should be reported by err(3) and friends. I don't > think the authors of sendmail have output like > > sendmail: accepting connections: some random error > > in mind when they write > > warn("some random error"); OK. They are logically separate, so it is simpler for them to have no interactions. > That said, you're right that setprogname() shouldn't be a stub. In > the corrected path (below), it simply sets __progname. The fact that > the pointer passed to it is kept for the duration of the program's > life cycle is documented, so I think it's okay. OK. > > > +const char *getprogname __P((void)); > > I think this prototype should be formatted as: > > > > const char * > > getprogname __P((void)); > > > > like all the other prototypes for all the other functions whose return > > type (name) is longer than 7. > > All the rest of the prototypes aren't formatted quite like that. E.g.: > > unsigned short > *seed48 __P((unsigned short[3])); > > The placement of the '*' differs. Personally, I think the way you > suggest looks better, so that's the way I wrote it in the new patch. > But which one's right? The others also have a 9-char indent if they don't have a '*'. The '*' looks better when it's in the same column (before the function name) for all cases, although it logically doesn't really belong there. > As mentioned before, a corrected patch is attached. OK... > --- /dev/null Tue May 1 20:04:30 2001 > +++ lib/libc/gen/getprogname.c Tue May 1 22:58:10 2001 > @@ -0,0 +1,14 @@ > +#ifndef lint > +static const char rcsid[] = > + "$FreeBSD$"; > +#endif /* not lint */ Use LIBC_RCS as well as "lint" here (see libc/gen/err.c; other files mostly use LIBC_SCCS but I think we plan to change them, at least if the id is not an sccsid). > + > +extern const char * > + __progname; The line break for indenting the variable name is a bit much. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0105042117490.60028-100000>