擅长:python、mysql、java
<p>如果使用正确,ctypes是一个安全的模块。在</p>
<p>有些库提供对事物的较低层次的访问,有些模块只允许您自取其辱。因此,自然有些模块比其他模块更危险。但这并不意味着你不应该使用它们!在</p>
<p>你可能听到有人这样说:</p>
<pre><code>#Crash python interpreter
from ctypes import *
def crashme():
c = c_char('x')
p = pointer(c)
i = 0
while True:
p[i] = 'x'
i += 1
</code></pre>
<p>python解释器崩溃与python代码本身因运行时错误而出错不同。例如,设置了默认递归限制的无限递归将导致运行时错误,但python解释器之后仍然是活动的。在</p>
<p>另一个很好的例子是sys模块。但是您不会停止使用sys模块,因为它会使python解释器崩溃。在</p>
^{pr2}$
<p>还有许多库提供较低级别的访问。例如,可以操纵gc模块来访问部分构造的对象,访问这些对象的字段可能会导致崩溃。在</p>
<p>参考文献和观点来自:<a href="http://wiki.python.org/moin/CrashingPython" rel="noreferrer">Crashing Python</a></p>