On this page
osUtil
int
Py_FdIsInteractive
(FILE *fp ,const char filename *)- 如果名称为* filename 的标准 I/O 文件 fp 被认为是交互式的,则返回 true(非零)。
isatty(fileno(fp))
为 true 的文件就是这种情况。如果全局标志Py_InteractiveFlag
为 true,则如果 filename 指针为 NULL *或名称等于字符串'<stdin>'
或'???'
之一,则此函数也返回 true。
- 如果名称为* filename 的标准 I/O 文件 fp 被认为是交互式的,则返回 true(非零)。
无效
PyOS_AfterFork
()- 在流程派生后更新某些内部状态的Function;如果将 continue 使用 Python 解释器,则应在新过程中调用此方法。如果将新的可执行文件加载到新进程中,则不需要调用此函数。
int
PyOS_CheckStack
()- 当解释器的堆栈空间不足时,返回 true。这是可靠的检查,但仅在定义
USE_STACKCHECK
时可用(当前在 Windows 上使用 Microsoft Visual C 编译器)。USE_STACKCHECK
将被自动定义;您永远不要在自己的代码中更改定义。
- 当解释器的堆栈空间不足时,返回 true。这是可靠的检查,但仅在定义
PyOS_sighandler_t
PyOS_getsig
(int * i *)- 返回 signal* i *的当前 signal 处理程序。这是围绕
sigaction()
或signal()
的薄包装。不要直接调用这些Function!PyOS_sighandler_t
是void (*)(int)
的 typedef 别名。
- 返回 signal* i *的当前 signal 处理程序。这是围绕
PyOS_sighandler_t
PyOS_setsig
(int * i *,PyOS_sighandler_t * h *)- 将 signal* i 的 signal 处理程序设置为 h *;返回旧的 signal 处理程序。这是围绕
sigaction()
或signal()
的薄包装。不要直接调用这些Function!PyOS_sighandler_t
是void (*)(int)
的 typedef 别名。
- 将 signal* i 的 signal 处理程序设置为 h *;返回旧的 signal 处理程序。这是围绕
System Functions
这些是 Util 函数,这些函数使sys模块的Function可用于 C 代码。它们都与当前解释器线程的sys模块的字典一起工作,该字典包含在内部线程状态结构中。
- PyObject *
PySys_GetObject
(char ** name *)- *返回值:借用参考。
从sys模块返回对象* name ;如果不存在,则返回 NULL *,而不设置异常。
FILE *
PySys_GetFile
(char *name ,FILE def *)- 返回与sys模块中的对象* name 关联的
FILE*
;如果 name 不在模块中或与FILE*
不关联,则返回 def *。
- 返回与sys模块中的对象* name 关联的
int
PySys_SetObject
(char *name ,PyObject v *)- 除非** v 为 NULL ,否则将sys模块中的 name 设置为 v ,在这种情况下,将从 sys 模块中删除 name *。成功返回
0
,错误返回-1
。
- 除非** v 为 NULL ,否则将sys模块中的 name 设置为 v ,在这种情况下,将从 sys 模块中删除 name *。成功返回
无效
PySys_ResetWarnOptions
()- 将sys.warnoptions重置为空列表。
无效
PySys_AddWarnOption
(char ** s *)- 将* s *附加到sys.warnoptions。
无效
PySys_SetPath
(char ** path *)- 将sys.path设置为在* path *中找到的路径的列表对象,该对象应该是用平台的搜索路径定界符(Unix 上为
:
,Windows 上为;
)分隔的路径的列表。
- 将sys.path设置为在* path *中找到的路径的列表对象,该对象应该是用平台的搜索路径定界符(Unix 上为
无效
PySys_WriteStdout
(const char ** format *,...)- 将* format *描述的输出字符串写入sys.stdout。即使发生截断,也不会引发异常(请参见下文)。
- format *应该将格式化输出字符串的总大小限制为 1000 字节或更小-1000 字节后,输出字符串将被截断。特别是,这意味着不应出现任何不受限制的“%s”格式;这些值应使用“%。 s”进行限制,其中是计算得出的十进制数,以使加上其他格式化文本的最大大小不超过 1000 个字节。还要注意“%f”,它可以打印数百位的非常大的数字。
如果出现问题,或者未设置sys.stdout,则格式化的消息将被写入实数(C 级)* stdout *。
- 无效
PySys_WriteStderr
(const char ** format *,...)- 如上,但是写到sys.stderr或* stderr *。
Process Control
- 无效
Py_FatalError
(const char ** message *)- 打印致命错误消息并终止进程。不执行清理。仅当检测到可能会 continue 使用 Python 解释器的危险的条件时,才应调用此函数。例如,当对象 Management 似乎已损坏时。在 Unix 上,将调用标准 C 库函数
abort()
,它将try生成core
文件。
- 打印致命错误消息并终止进程。不执行清理。仅当检测到可能会 continue 使用 Python 解释器的危险的条件时,才应调用此函数。例如,当对象 Management 似乎已损坏时。在 Unix 上,将调用标准 C 库函数
- 无效
Py_Exit
(int 状态)- 退出当前进程。这将调用Py_Finalize(),然后调用标准 C 库函数
exit(status)
。
- 退出当前进程。这将调用Py_Finalize(),然后调用标准 C 库函数
- int
Py_AtExit
(void(** func *)())- 注册一个由Py_Finalize()调用的清理函数。清理函数将不带任何参数调用,并且不返回任何值。最多可以注册 32 个清除Function。注册成功后,Py_AtExit()返回
0
;如果失败,则返回-1
。最后注册的清除Function首先被调用。每个清理函数最多被调用一次。由于 Python 的内部完成工作将在 cleanup 函数之前完成,因此* func *不应调用 Python API。
- 注册一个由Py_Finalize()调用的清理函数。清理函数将不带任何参数调用,并且不返回任何值。最多可以注册 32 个清除Function。注册成功后,Py_AtExit()返回