Python 2 中的``个性(2)``
``personality(2)`` in Python 2
我需要一种从 Python 2.7 程序调用 personality(2)
的方法。
我在 cpython 源代码树中找不到提及,我在哪里
开始寻找?进行原始系统调用是可以接受的,只要它
不添加任何依赖项。
背景:
我有一个遗留程序调用的顽固库,我只能
在 Python 包装部分打补丁。 (不要问。)不幸的是
该库的行为取决于 uname -m
的结果。这
这个运行的环境 非常 受限,所以我们不能假设
普通用户域存在。 (如果我能包起来就好了
setarch(8)
中的脚本调用,但这不可行。)
您可以使用 ctypes 来完成,它是 Python 的一部分,因此不会添加任何依赖项:
import ctypes
personality = ctypes.CDLL(None).personality
personality.restype = ctypes.c_int
personality.argtypes = [ctypes.c_ulong]
print(personality(0xffffffff))
我需要一种从 Python 2.7 程序调用 personality(2)
的方法。
我在 cpython 源代码树中找不到提及,我在哪里
开始寻找?进行原始系统调用是可以接受的,只要它
不添加任何依赖项。
背景:
我有一个遗留程序调用的顽固库,我只能
在 Python 包装部分打补丁。 (不要问。)不幸的是
该库的行为取决于 uname -m
的结果。这
这个运行的环境 非常 受限,所以我们不能假设
普通用户域存在。 (如果我能包起来就好了
setarch(8)
中的脚本调用,但这不可行。)
您可以使用 ctypes 来完成,它是 Python 的一部分,因此不会添加任何依赖项:
import ctypes
personality = ctypes.CDLL(None).personality
personality.restype = ctypes.c_int
personality.argtypes = [ctypes.c_ulong]
print(personality(0xffffffff))