source: trunk/essentials/app-shells/bash/lib/sh/strerror.c@ 3258

Last change on this file since 3258 was 3231, checked in by bird, 19 years ago

eol style.

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1/* strerror.c - string corresponding to a particular value of errno. */
2
3/* Copyright (C) 1995 Free Software Foundation, Inc.
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
7 Bash is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
10 version.
11
12 Bash is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License along
18 with Bash; see the file COPYING. If not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */
20
21#include <config.h>
22
23#if !defined (HAVE_STRERROR)
24
25#include <bashtypes.h>
26#ifndef _MINIX
27# include <sys/param.h>
28#endif
29
30#if defined (HAVE_UNISTD_H)
31# include <unistd.h>
32#endif
33
34#include <stdio.h>
35#include <errno.h>
36
37#include <shell.h>
38
39#if !defined (errno)
40extern int errno;
41#endif /* !errno */
42
43/* Return a string corresponding to the error number E. From
44 the ANSI C spec. */
45#if defined (strerror)
46# undef strerror
47#endif
48
49static char *errbase = "Unknown system error ";
50
51char *
52strerror (e)
53 int e;
54{
55 static char emsg[40];
56#if defined (HAVE_SYS_ERRLIST)
57 extern int sys_nerr;
58 extern char *sys_errlist[];
59
60 if (e > 0 && e < sys_nerr)
61 return (sys_errlist[e]);
62 else
63#endif /* HAVE_SYS_ERRLIST */
64 {
65 char *z;
66
67 z = itos (e);
68 strcpy (emsg, errbase);
69 strcat (emsg, z);
70 free (z);
71 return (&emsg[0]);
72 }
73}
74#endif /* HAVE_STRERROR */
Note: See TracBrowser for help on using the repository browser.