在哪里可以找到os.urandom()的源代码?

时间:2019-01-08 13:04:05

标签: python python-3.x random python-internals

我想研究和研究python 3.7的function GetFiles($path = $pwd, [string[]]$exclude) { foreach ($item in Get-ChildItem $path) { if ($exclude | Where {$item -like $_}) { continue } if (Test-Path $item.FullName -PathType Container) { $item GetFiles $item.FullName $exclude } else { $item } } } 函数的代码。 我看了各自标准库的function GetFiles($path = $pwd, [string[]]$exclude) { foreach ($item in Get-ChildItem $path) { if ($exclude | Where {$item -like $_}) { continue } if (Test-Path $item.FullName -PathType Container) { # directory $item GetFiles $item.FullName $exclude } else { # file if($item.Parent.Name -eq "abc"){ # parent directory was named abc # change isReadOnly value to false # $item.isreadonly = $false; Set-ItemProperty $item.FullName -name IsReadOnly -value $false } $item } } } ,但既未在其中定义它,也未将其导入其中。 我还尝试了grep的定义:

os.urandom() 但是什么都没有。 我怀疑关于os.urandom()发生了一些不可思议的事情。 在哪里可以找到用于研究和密码分析的函数定义?

1 个答案:

答案 0 :(得分:4)

在POSIX系统和Windows上,Modules/posixmodule.c处理为os模块定义的许多名称。请注意,源代码位于 C 中,而不是Python中,因为访问系统功能需要本机代码。

您可以看到这是os.py source code,根据当前操作系统导入posixnt,这两个名称都是从上述posixmodule.c文件编译而来的但已重命名以更好地反映平台并指示两个变体之间的功能有所不同(nt变体提供的功能较少)。

有关os.urandom()的实现详细信息,请参见os_urandom_impl() function。这委派给内部函数_PyOS_URandom(),并将其与Python启动过程早期所需的其他辅助函数一起在Python/bootstrap_hash.c中定义。