2008-01-20 10:30:57 +01:00
|
|
|
.. highlightlang:: c
|
|
|
|
|
|
|
|
.. _os:
|
|
|
|
|
|
|
|
Operating System Utilities
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: int Py_FdIsInteractive(FILE *fp, const char *filename)
|
|
|
|
|
|
|
|
Return true (nonzero) if the standard I/O file *fp* with name *filename* is
|
|
|
|
deemed interactive. This is the case for files for which ``isatty(fileno(fp))``
|
|
|
|
is true. If the global flag :cdata:`Py_InteractiveFlag` is true, this function
|
|
|
|
also returns true if the *filename* pointer is *NULL* or if the name is equal to
|
|
|
|
one of the strings ``'<stdin>'`` or ``'???'``.
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: void PyOS_AfterFork()
|
|
|
|
|
|
|
|
Function to update some internal state after a process fork; this should be
|
|
|
|
called in the new process if the Python interpreter will continue to be used.
|
|
|
|
If a new executable is loaded into the new process, this function does not need
|
|
|
|
to be called.
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: int PyOS_CheckStack()
|
|
|
|
|
|
|
|
Return true when the interpreter runs out of stack space. This is a reliable
|
|
|
|
check, but is only available when :const:`USE_STACKCHECK` is defined (currently
|
|
|
|
on Windows using the Microsoft Visual C++ compiler). :const:`USE_STACKCHECK`
|
|
|
|
will be defined automatically; you should never change the definition in your
|
|
|
|
own code.
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: PyOS_sighandler_t PyOS_getsig(int i)
|
|
|
|
|
|
|
|
Return the current signal handler for signal *i*. This is a thin wrapper around
|
|
|
|
either :cfunc:`sigaction` or :cfunc:`signal`. Do not call those functions
|
|
|
|
directly! :ctype:`PyOS_sighandler_t` is a typedef alias for :ctype:`void
|
|
|
|
(\*)(int)`.
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: PyOS_sighandler_t PyOS_setsig(int i, PyOS_sighandler_t h)
|
|
|
|
|
|
|
|
Set the signal handler for signal *i* to be *h*; return the old signal handler.
|
|
|
|
This is a thin wrapper around either :cfunc:`sigaction` or :cfunc:`signal`. Do
|
|
|
|
not call those functions directly! :ctype:`PyOS_sighandler_t` is a typedef
|
|
|
|
alias for :ctype:`void (\*)(int)`.
|
|
|
|
|
|
|
|
.. _systemfunctions:
|
|
|
|
|
|
|
|
System Functions
|
|
|
|
================
|
|
|
|
|
|
|
|
These are utility functions that make functionality from the :mod:`sys` module
|
|
|
|
accessible to C code. They all work with the current interpreter thread's
|
|
|
|
:mod:`sys` module's dict, which is contained in the internal thread state structure.
|
|
|
|
|
|
|
|
.. cfunction:: PyObject *PySys_GetObject(char *name)
|
|
|
|
|
|
|
|
Return the object *name* from the :mod:`sys` module or *NULL* if it does
|
|
|
|
not exist, without setting an exception.
|
|
|
|
|
|
|
|
.. cfunction:: FILE *PySys_GetFile(char *name, FILE *def)
|
|
|
|
|
|
|
|
Return the :ctype:`FILE*` associated with the object *name* in the
|
|
|
|
:mod:`sys` module, or *def* if *name* is not in the module or is not associated
|
|
|
|
with a :ctype:`FILE*`.
|
|
|
|
|
|
|
|
.. cfunction:: int PySys_SetObject(char *name, PyObject *v)
|
|
|
|
|
|
|
|
Set *name* in the :mod:`sys` module to *v* unless *v* is *NULL*, in which
|
|
|
|
case *name* is deleted from the sys module. Returns ``0`` on success, ``-1``
|
|
|
|
on error.
|
|
|
|
|
Merged revisions 73941-73943,74076,74094,74186,74211-74214,74247,74254,74262,74311,74334,74368 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k
................
r73941 | georg.brandl | 2009-07-11 12:39:00 +0200 (Sa, 11 Jul 2009) | 9 lines
Merged revisions 73940 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r73940 | georg.brandl | 2009-07-11 12:37:38 +0200 (Sa, 11 Jul 2009) | 1 line
#6430: add note about size of "u" type.
........
................
r73942 | georg.brandl | 2009-07-11 12:39:23 +0200 (Sa, 11 Jul 2009) | 1 line
#6430: remove mention of "w" array typecode.
................
r73943 | georg.brandl | 2009-07-11 12:43:08 +0200 (Sa, 11 Jul 2009) | 1 line
#6421: The self argument of module-level PyCFunctions is now a reference to the module object.
................
r74076 | georg.brandl | 2009-07-18 11:07:48 +0200 (Sa, 18 Jul 2009) | 1 line
#6502: add missing comma in docstring.
................
r74094 | georg.brandl | 2009-07-19 09:25:56 +0200 (So, 19 Jul 2009) | 10 lines
Recorded merge of revisions 74089 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74089 | senthil.kumaran | 2009-07-19 04:43:43 +0200 (So, 19 Jul 2009) | 3 lines
Fix for issue5102, timeout value propages between redirects, proxy, digest and
auth handlers. Fixed tests to reflect the same.
........
................
r74186 | georg.brandl | 2009-07-23 11:19:09 +0200 (Do, 23 Jul 2009) | 9 lines
Recorded merge of revisions 74185 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74185 | georg.brandl | 2009-07-23 11:17:09 +0200 (Do, 23 Jul 2009) | 1 line
Fix the "pylocals" gdb command.
........
................
r74211 | georg.brandl | 2009-07-26 16:48:09 +0200 (So, 26 Jul 2009) | 9 lines
Recorded merge of revisions 74210 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74210 | georg.brandl | 2009-07-26 16:44:23 +0200 (So, 26 Jul 2009) | 1 line
Move member descriptions inside the classes.
........
................
r74212 | georg.brandl | 2009-07-26 16:54:51 +0200 (So, 26 Jul 2009) | 9 lines
Merged revisions 74209 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74209 | georg.brandl | 2009-07-26 16:37:28 +0200 (So, 26 Jul 2009) | 1 line
builtin -> built-in.
........
................
r74213 | georg.brandl | 2009-07-26 17:02:41 +0200 (So, 26 Jul 2009) | 9 lines
Merged revisions 74207 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74207 | georg.brandl | 2009-07-26 16:19:57 +0200 (So, 26 Jul 2009) | 1 line
#6577: fix (hopefully) all links to builtin instead of module/class-specific objects.
........
................
r74214 | georg.brandl | 2009-07-26 17:03:49 +0200 (So, 26 Jul 2009) | 9 lines
Merged revisions 74205 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74205 | georg.brandl | 2009-07-26 15:36:39 +0200 (So, 26 Jul 2009) | 1 line
#6576: fix cross-refs in re docs.
........
................
r74247 | georg.brandl | 2009-07-29 09:27:08 +0200 (Mi, 29 Jul 2009) | 9 lines
Merged revisions 74239 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74239 | georg.brandl | 2009-07-28 18:55:32 +0000 (Di, 28 Jul 2009) | 1 line
Clarify quote_plus() usage.
........
................
r74254 | georg.brandl | 2009-07-29 18:14:16 +0200 (Mi, 29 Jul 2009) | 1 line
#6586: fix return/argument type doc for os.read() and os.write().
................
r74262 | alexandre.vassalotti | 2009-07-29 21:54:39 +0200 (Mi, 29 Jul 2009) | 57 lines
Merged revisions 74074,74077,74111,74188,74192-74193,74200,74252-74253,74258-74261 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74074 | georg.brandl | 2009-07-18 05:03:10 -0400 (Sat, 18 Jul 2009) | 1 line
#6513: fix example code: warning categories are classes, not instances.
........
r74077 | georg.brandl | 2009-07-18 05:43:40 -0400 (Sat, 18 Jul 2009) | 1 line
#6489: fix an ambiguity in getiterator() documentation.
........
r74111 | benjamin.peterson | 2009-07-20 09:30:10 -0400 (Mon, 20 Jul 2009) | 1 line
remove docs for deprecated -p option
........
r74188 | benjamin.peterson | 2009-07-23 10:25:31 -0400 (Thu, 23 Jul 2009) | 1 line
use bools
........
r74192 | georg.brandl | 2009-07-24 12:28:38 -0400 (Fri, 24 Jul 2009) | 1 line
Fix arg types of et#.
........
r74193 | georg.brandl | 2009-07-24 12:46:38 -0400 (Fri, 24 Jul 2009) | 1 line
Dont put "void" in signature for nullary functions.
........
r74200 | georg.brandl | 2009-07-25 09:02:15 -0400 (Sat, 25 Jul 2009) | 1 line
#6571: add index entries for more operators.
........
r74252 | georg.brandl | 2009-07-29 12:06:31 -0400 (Wed, 29 Jul 2009) | 1 line
#6593: fix link targets.
........
r74253 | georg.brandl | 2009-07-29 12:09:17 -0400 (Wed, 29 Jul 2009) | 1 line
#6591: add reference to ioctl in fcntl module for platforms other than Windows.
........
r74258 | georg.brandl | 2009-07-29 12:57:05 -0400 (Wed, 29 Jul 2009) | 1 line
Add a link to readline, and mention IPython and bpython.
........
r74259 | georg.brandl | 2009-07-29 13:07:21 -0400 (Wed, 29 Jul 2009) | 1 line
Fix some markup and small factual glitches found by M. Markert.
........
r74260 | georg.brandl | 2009-07-29 13:15:20 -0400 (Wed, 29 Jul 2009) | 1 line
Fix a few markup glitches.
........
r74261 | georg.brandl | 2009-07-29 13:50:25 -0400 (Wed, 29 Jul 2009) | 1 line
Rewrite the section about classes a bit; mostly tidbits, and a larger update to the section about "private" variables to reflect the Pythonic consensus better.
........
................
r74311 | georg.brandl | 2009-08-04 22:29:27 +0200 (Di, 04 Aug 2009) | 1 line
Slightly improve buffer-related error message.
................
r74334 | georg.brandl | 2009-08-06 19:51:03 +0200 (Do, 06 Aug 2009) | 1 line
#6648: mention surrogateescape handler where all standard handlers are listed.
................
r74368 | georg.brandl | 2009-08-13 09:56:35 +0200 (Do, 13 Aug 2009) | 21 lines
Merged revisions 74328,74332-74333,74365 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74328 | georg.brandl | 2009-08-06 17:06:25 +0200 (Do, 06 Aug 2009) | 1 line
Fix base keyword arg name for int() and long().
........
r74332 | georg.brandl | 2009-08-06 19:23:21 +0200 (Do, 06 Aug 2009) | 1 line
Fix punctuation and one copy-paste error.
........
r74333 | georg.brandl | 2009-08-06 19:43:55 +0200 (Do, 06 Aug 2009) | 1 line
#6658: fix two typos.
........
r74365 | georg.brandl | 2009-08-13 09:48:05 +0200 (Do, 13 Aug 2009) | 1 line
#6679: Remove mention that sub supports no flags.
........
................
2009-08-13 10:26:44 +02:00
|
|
|
.. cfunction:: void PySys_ResetWarnOptions()
|
2008-01-20 10:30:57 +01:00
|
|
|
|
|
|
|
Reset :data:`sys.warnoptions` to an empty list.
|
|
|
|
|
2008-04-05 22:41:37 +02:00
|
|
|
.. cfunction:: void PySys_AddWarnOption(wchar_t *s)
|
2008-01-20 10:30:57 +01:00
|
|
|
|
|
|
|
Append *s* to :data:`sys.warnoptions`.
|
|
|
|
|
2008-04-05 22:41:37 +02:00
|
|
|
.. cfunction:: void PySys_SetPath(wchar_t *path)
|
2008-01-20 10:30:57 +01:00
|
|
|
|
|
|
|
Set :data:`sys.path` to a list object of paths found in *path* which should
|
|
|
|
be a list of paths separated with the platform's search path delimiter
|
|
|
|
(``:`` on Unix, ``;`` on Windows).
|
|
|
|
|
|
|
|
.. cfunction:: void PySys_WriteStdout(const char *format, ...)
|
|
|
|
|
|
|
|
Write the output string described by *format* to :data:`sys.stdout`. No
|
|
|
|
exceptions are raised, even if truncation occurs (see below).
|
|
|
|
|
|
|
|
*format* should limit the total size of the formatted output string to
|
|
|
|
1000 bytes or less -- after 1000 bytes, the output string is truncated.
|
|
|
|
In particular, this means that no unrestricted "%s" formats should occur;
|
|
|
|
these should be limited using "%.<N>s" where <N> is a decimal number
|
|
|
|
calculated so that <N> plus the maximum size of other formatted text does not
|
|
|
|
exceed 1000 bytes. Also watch out for "%f", which can print hundreds of
|
|
|
|
digits for very large numbers.
|
|
|
|
|
|
|
|
If a problem occurs, or :data:`sys.stdout` is unset, the formatted message
|
|
|
|
is written to the real (C level) *stdout*.
|
|
|
|
|
|
|
|
.. cfunction:: void PySys_WriteStderr(const char *format, ...)
|
|
|
|
|
|
|
|
As above, but write to :data:`sys.stderr` or *stderr* instead.
|
|
|
|
|
|
|
|
|
|
|
|
.. _processcontrol:
|
|
|
|
|
|
|
|
Process Control
|
|
|
|
===============
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: void Py_FatalError(const char *message)
|
|
|
|
|
|
|
|
.. index:: single: abort()
|
|
|
|
|
|
|
|
Print a fatal error message and kill the process. No cleanup is performed.
|
|
|
|
This function should only be invoked when a condition is detected that would
|
|
|
|
make it dangerous to continue using the Python interpreter; e.g., when the
|
|
|
|
object administration appears to be corrupted. On Unix, the standard C library
|
|
|
|
function :cfunc:`abort` is called which will attempt to produce a :file:`core`
|
|
|
|
file.
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: void Py_Exit(int status)
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
single: Py_Finalize()
|
|
|
|
single: exit()
|
|
|
|
|
|
|
|
Exit the current process. This calls :cfunc:`Py_Finalize` and then calls the
|
|
|
|
standard C library function ``exit(status)``.
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: int Py_AtExit(void (*func) ())
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
single: Py_Finalize()
|
|
|
|
single: cleanup functions
|
|
|
|
|
|
|
|
Register a cleanup function to be called by :cfunc:`Py_Finalize`. The cleanup
|
|
|
|
function will be called with no arguments and should return no value. At most
|
|
|
|
32 cleanup functions can be registered. When the registration is successful,
|
|
|
|
:cfunc:`Py_AtExit` returns ``0``; on failure, it returns ``-1``. The cleanup
|
|
|
|
function registered last is called first. Each cleanup function will be called
|
|
|
|
at most once. Since Python's internal finalization will have completed before
|
|
|
|
the cleanup function, no Python APIs should be called by *func*.
|