我正在尝试使用作为PyWin32包一部分的win32job API。我想这样做:
win32job.CreateJobObject(None, NULL)
我想将NULL作为第二个参数传递,如下所述:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682409(v=vs.85).aspx
If lpName is NULL, the job is created without a name.
如何传递空值?
以下是我所希望的,但没有:
win32job.CreateJobObject(None, None)
错误:
TypeError: None is not a valid string in this context
(旁白。。。如果有人知道如何在Windows中查看与进程关联的JobObjects,这将很有帮助。)
您可以使用
win32job.CreateJobObject(None, "")
。尽管空字符串不是在[MS.Docs]: CreateJobObjectA function上指定的,但它的行为与NULL类似。根据以上链接:
我写了一个小程序来演示:
输出(使用VStudio 2015社区版构建并运行):
您可以看到,对于“dummy0”和“dummy”,每次(除了1st)在创建新对象时,函数都会返回一个新的句柄,但失败(getlastererror返回183(即ERROR\u ALREADY存在)。对于空字符串名NULL和不会发生这种情况(从这里我了解到,每次调用都会创建一个新对象,而不是增加现有对象的引用)。
Python“翻译”(code.py):
输出(与C的情况相同,这是很自然的,因为Python函数只包装较低级别的C函数):
关于“边”的问题:不幸的是,我不熟悉这个话题。
相关问题 更多 >
编程相关推荐