Patch #543447: Add posix.mknod.
This commit is contained in:
parent
314fc79ce8
commit
06a83e90aa
|
@ -644,6 +644,17 @@ the client opens it for writing. Note that \function{mkfifo()}
|
||||||
doesn't open the FIFO --- it just creates the rendezvous point.
|
doesn't open the FIFO --- it just creates the rendezvous point.
|
||||||
\end{funcdesc}
|
\end{funcdesc}
|
||||||
|
|
||||||
|
\begin{funcdesc}{mknod}{path\optional{, mode=0600, major, minor}}
|
||||||
|
Create a filesystem node (file, device special file or named pipe)
|
||||||
|
named filename. mode specifies both the permissions to use and the
|
||||||
|
type of node to be created, being combined (bitwise OR) with one of
|
||||||
|
S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO (those constants are available
|
||||||
|
in \module{stat}). For S_IFCHR and S_IFBLK, major and minor define the
|
||||||
|
newly created device special file, otherwise they are ignored.
|
||||||
|
|
||||||
|
\versionadded{2.3}
|
||||||
|
\end{funcdesc}
|
||||||
|
|
||||||
\begin{funcdesc}{mkdir}{path\optional{, mode}}
|
\begin{funcdesc}{mkdir}{path\optional{, mode}}
|
||||||
Create a directory named \var{path} with numeric mode \var{mode}.
|
Create a directory named \var{path} with numeric mode \var{mode}.
|
||||||
The default \var{mode} is \code{0777} (octal). On some systems,
|
The default \var{mode} is \code{0777} (octal). On some systems,
|
||||||
|
|
|
@ -56,6 +56,8 @@ Core and builtins
|
||||||
|
|
||||||
Extension modules
|
Extension modules
|
||||||
|
|
||||||
|
- posix.mknod was added.
|
||||||
|
|
||||||
- The locale module now exposes the C library's gettext interface.
|
- The locale module now exposes the C library's gettext interface.
|
||||||
|
|
||||||
- A security hole ("double free") was found in zlib-1.1.3, a popular
|
- A security hole ("double free") was found in zlib-1.1.3, a popular
|
||||||
|
|
|
@ -4582,19 +4582,52 @@ posix_pipe(PyObject *self, PyObject *args)
|
||||||
|
|
||||||
#ifdef HAVE_MKFIFO
|
#ifdef HAVE_MKFIFO
|
||||||
static char posix_mkfifo__doc__[] =
|
static char posix_mkfifo__doc__[] =
|
||||||
"mkfifo(file, [, mode=0666]) -> None\n\
|
"mkfifo(filename, [, mode=0666]) -> None\n\
|
||||||
Create a FIFO (a POSIX named pipe).";
|
Create a FIFO (a POSIX named pipe).";
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
posix_mkfifo(PyObject *self, PyObject *args)
|
posix_mkfifo(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
char *file;
|
char *filename;
|
||||||
int mode = 0666;
|
int mode = 0666;
|
||||||
int res;
|
int res;
|
||||||
if (!PyArg_ParseTuple(args, "s|i:mkfifo", &file, &mode))
|
if (!PyArg_ParseTuple(args, "s|i:mkfifo", &filename, &mode))
|
||||||
return NULL;
|
return NULL;
|
||||||
Py_BEGIN_ALLOW_THREADS
|
Py_BEGIN_ALLOW_THREADS
|
||||||
res = mkfifo(file, mode);
|
res = mkfifo(filename, mode);
|
||||||
|
Py_END_ALLOW_THREADS
|
||||||
|
if (res < 0)
|
||||||
|
return posix_error();
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
return Py_None;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_MKNOD
|
||||||
|
static char posix_mknod__doc__[] =
|
||||||
|
"mknod(filename, [, mode=0600, major, minor]) -> None\n\
|
||||||
|
Create a filesystem node (file, device special file or named pipe)\n\
|
||||||
|
named filename. mode specifies both the permissions to use and the\n\
|
||||||
|
type of node to be created, being combined (bitwise OR) with one of\n\
|
||||||
|
S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO. For S_IFCHR and S_IFBLK,\n\
|
||||||
|
major and minor define the newly created device special file, otherwise\n\
|
||||||
|
they are ignored.";
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
posix_mknod(PyObject *self, PyObject *args)
|
||||||
|
{
|
||||||
|
char *filename;
|
||||||
|
int mode = 0600;
|
||||||
|
int major = 0;
|
||||||
|
int minor = 0;
|
||||||
|
int res;
|
||||||
|
if (!PyArg_ParseTuple(args, "s|iii:mknod", &filename,
|
||||||
|
&mode, &major, &minor))
|
||||||
|
return NULL;
|
||||||
|
Py_BEGIN_ALLOW_THREADS
|
||||||
|
res = mknod(filename, mode, makedev(major, minor));
|
||||||
Py_END_ALLOW_THREADS
|
Py_END_ALLOW_THREADS
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
return posix_error();
|
return posix_error();
|
||||||
|
@ -6336,6 +6369,9 @@ static PyMethodDef posix_methods[] = {
|
||||||
#ifdef HAVE_MKFIFO
|
#ifdef HAVE_MKFIFO
|
||||||
{"mkfifo", posix_mkfifo, METH_VARARGS, posix_mkfifo__doc__},
|
{"mkfifo", posix_mkfifo, METH_VARARGS, posix_mkfifo__doc__},
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_MKNOD
|
||||||
|
{"mknod", posix_mknod, METH_VARARGS, posix_mknod__doc__},
|
||||||
|
#endif
|
||||||
#ifdef HAVE_FTRUNCATE
|
#ifdef HAVE_FTRUNCATE
|
||||||
{"ftruncate", posix_ftruncate, METH_VARARGS, posix_ftruncate__doc__},
|
{"ftruncate", posix_ftruncate, METH_VARARGS, posix_ftruncate__doc__},
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# From configure.in Revision: 1.306 .
|
# From configure.in Revision: 1.307 .
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.53.
|
# Generated by GNU Autoconf 2.53.
|
||||||
#
|
#
|
||||||
|
@ -11243,12 +11243,13 @@ echo "${ECHO_T}MACHDEP_OBJS" >&6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for ac_func in alarm chown chroot clock confstr ctermid ctermid_r execv \
|
for ac_func in alarm chown chroot clock confstr ctermid ctermid_r execv \
|
||||||
flock fork fsync fdatasync fpathconf ftime ftruncate \
|
flock fork fsync fdatasync fpathconf ftime ftruncate \
|
||||||
gai_strerror getgroups getlogin getpeername getpid getpwent getwd \
|
gai_strerror getgroups getlogin getpeername getpid getpwent getwd \
|
||||||
hstrerror inet_pton kill killpg link lstat mkfifo mktime mremap \
|
hstrerror inet_pton kill killpg link lstat mkfifo mknod mktime mremap \
|
||||||
nice pathconf pause plock poll pthread_init \
|
nice pathconf pause plock poll pthread_init \
|
||||||
putenv readlink \
|
putenv readlink \
|
||||||
select setegid seteuid setgid setgroups \
|
select setegid seteuid setgid setgroups \
|
||||||
|
|
|
@ -1568,7 +1568,7 @@ AC_MSG_RESULT(MACHDEP_OBJS)
|
||||||
AC_CHECK_FUNCS(alarm chown chroot clock confstr ctermid ctermid_r execv \
|
AC_CHECK_FUNCS(alarm chown chroot clock confstr ctermid ctermid_r execv \
|
||||||
flock fork fsync fdatasync fpathconf ftime ftruncate \
|
flock fork fsync fdatasync fpathconf ftime ftruncate \
|
||||||
gai_strerror getgroups getlogin getpeername getpid getpwent getwd \
|
gai_strerror getgroups getlogin getpeername getpid getpwent getwd \
|
||||||
hstrerror inet_pton kill killpg link lstat mkfifo mktime mremap \
|
hstrerror inet_pton kill killpg link lstat mkfifo mknod mktime mremap \
|
||||||
nice pathconf pause plock poll pthread_init \
|
nice pathconf pause plock poll pthread_init \
|
||||||
putenv readlink \
|
putenv readlink \
|
||||||
select setegid seteuid setgid setgroups \
|
select setegid seteuid setgid setgroups \
|
||||||
|
|
|
@ -260,6 +260,9 @@
|
||||||
/* Define to 1 if you have the `mkfifo' function. */
|
/* Define to 1 if you have the `mkfifo' function. */
|
||||||
#undef HAVE_MKFIFO
|
#undef HAVE_MKFIFO
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mknod' function. */
|
||||||
|
#undef HAVE_MKNOD
|
||||||
|
|
||||||
/* Define to 1 if you have the `mktime' function. */
|
/* Define to 1 if you have the `mktime' function. */
|
||||||
#undef HAVE_MKTIME
|
#undef HAVE_MKTIME
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue