diff options
author | Guido van Rossum <guido@python.org> | 1997-09-15 22:54:34 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-09-15 22:54:34 (GMT) |
commit | b6a47162989ef02d627308838a12092fd6e050b8 (patch) | |
tree | 95749b0bf6e7bfdc1546e5a438a27ba1a939103d | |
parent | a2f626ff5826b420a306b341df52f9546d1f71f4 (diff) | |
download | cpython-b6a47162989ef02d627308838a12092fd6e050b8.zip cpython-b6a47162989ef02d627308838a12092fd6e050b8.tar.gz cpython-b6a47162989ef02d627308838a12092fd6e050b8.tar.bz2 |
Add strerror() interface.
-rw-r--r-- | Modules/posixmodule.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 5e24762..3069d34 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -2006,7 +2006,7 @@ static char posix_putenv__doc__[] = Change or add an environment variable."; static PyObject * -posix_putenv(self,args) +posix_putenv(self, args) PyObject *self; PyObject *args; { @@ -2026,7 +2026,32 @@ posix_putenv(self,args) Py_INCREF(Py_None); return Py_None; } -#endif +#endif /* putenv */ + +#ifdef HAVE_STRERROR +static char posix_strerror__doc__[] = +"strerror(code) -> string\n\ +Translate an error code to a message string."; + +PyObject * +posix_strerror(self, args) + PyObject *self; + PyObject *args; +{ + int code; + char *message; + if (!PyArg_ParseTuple(args, "i", &code)) + return NULL; + message = strerror(code); + if (message == NULL) { + PyErr_SetString(PyExc_ValueError, + "strerror code out of range"); + return NULL; + } + return PyString_FromString(message); +} +#endif /* strerror */ + static PyMethodDef posix_methods[] = { {"chdir", posix_chdir, 0, posix_chdir__doc__}, @@ -2152,6 +2177,9 @@ static PyMethodDef posix_methods[] = { #ifdef HAVE_PUTENV {"putenv", posix_putenv, 1, posix_putenv__doc__}, #endif +#ifdef HAVE_STRERROR + {"strerror", posix_strerror, 1, posix_strerror__doc__}, +#endif {NULL, NULL} /* Sentinel */ }; |