我查看了CPython的源代码(Hg online here),但我似乎无法找到os.stat()
的定义。看起来stat
在os
模块(Lib/os.py,约在线139)中是神奇的全局。在CPython中定义os.stat()在哪里?
有人可以指向我的相应文件吗?
我查看了CPython的源代码(Hg online here),但我似乎无法找到os.stat()
的定义。看起来stat
在os
模块(Lib/os.py,约在线139)中是神奇的全局。在CPython中定义os.stat()在哪里?
有人可以指向我的相应文件吗?
貌似线51(用于UNIX;也有类似的线其他平台):
from posix import *
跟踪它的时候,我们发现我们通过线29的返回值达到这一点:
2301,其最终由os
称为:
static PyObject * posix_lstat(PyObject *self, PyObject *args, PyObject *kwargs) // ...
而posix_stat
在Modules/posixmodule.c定义
啊,谢谢!我错过了。 – 2012-07-13 17:50:14
此功能取决于平台,并在posix
,nt
,os2
或ce
模块之一中定义。作为一个例子,这里是implementation of os.stat()
for POSIX operating systems。
我自己发现了这个功能。它如何在'os'中结束?谢谢。 – 2012-07-13 17:49:20
@ConradMeyer:已导入。 'os.py'中有一大堆'from xxx import *'语句;正确的选择是基于平台的。 – 2012-07-13 17:50:50
看起来像Modules/posixmodule.c中的'posix_stat()':2302将'stat(2)'系统调用暴露给python,但它不能很好地解释它是如何到达'os'的。它被添加到10952行的'posix_modules',对应于“stat”。这些看起来是从11814行上的模块中导出的。 – 2012-07-13 17:45:33