Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!husc6!sri-unix!sri-spam!ames!lll-tis!lll-lcc!ptsfa!hoptoad!academ!uhnix1!sugar!peter From: peter@sugar.UUCP (Peter da Silva) Newsgroups: comp.lang.c Subject: Perror (was Re: Accessing argc & argv from a functi) Message-ID: <518@sugar.UUCP> Date: Wed, 19-Aug-87 22:29:46 EDT Article-I.D.: sugar.518 Posted: Wed Aug 19 22:29:46 1987 Date-Received: Sat, 22-Aug-87 19:56:51 EDT References: <22@flmis06.ATT.COM> <28700015@ccvaxa> <853@mcgill-vision.UUCP> Organization: Sugar Land UNIX - Houston, TX Lines: 19 > I know what you mean. Well over half of all the calls to perror() I > write look like perror((char *)0); because the prefix is more ^^^^^^^^^ Bad practice. > complicated than a single string, so I have fprintf(stderr,....); > before the perror(). Wish perror() were printflike, perhaps like > syslog() - syslog() accepts a printf format, except that %m means > insert sys_errlst[errno]. You shouldn't pass null to perror. It's not guaranteed to work. It might even crash you. It's easy enough to do this: extern int errno; extern char **sys_errlst; fprintf(stderr, "%this, %that: %s\n", this, that, sys_errlst[errno]); -- -- Peter da Silva `-_-' ...!seismo!soma!uhnix1!sugar!peter (I said, NO PHOTOS!)