Windows 是否应该关闭从_spawnv返回的句柄?
是否需要从Windows 是否应该关闭从_spawnv返回的句柄?,windows,winapi,process,Windows,Winapi,Process,是否需要从\u spawnv()调用句柄上的closeHandle() 另外,当我调用\u spawnv()时,新进程句柄的refcount是否会增加 而且,如果它是递增的,那么一旦进程终止,它不会进入类似linux的“僵尸”状态吗?在异步模式下调用_spawnv时,会返回进程句柄。我假设句柄总是有效的,因为您可以尝试通过_cwait等待生成的进程(如果给定句柄不是标识调用进程或线程的伪句柄,则关闭该句柄) 当进程终止时,其内核对象将一直存在,直到删除对它的所有句柄和指针引用为止。在这种状态下,
\u spawnv()
调用句柄上的closeHandle()
另外,当我调用\u spawnv()
时,新进程句柄的refcount是否会增加
而且,如果它是递增的,那么一旦进程终止,它不会进入类似linux的“僵尸”状态吗?在异步模式下调用_spawnv时,会返回进程句柄。我假设句柄总是有效的,因为您可以尝试通过_cwait等待生成的进程(如果给定句柄不是标识调用进程或线程的伪句柄,则关闭该句柄)
当进程终止时,其内核对象将一直存在,直到删除对它的所有句柄和指针引用为止。在这种状态下,进程实际上没有地址空间,并且可能没有列在正在运行的进程列表中(您在任务管理器中看不到它)。如果您不需要句柄,则应将其关闭。但是,如果不这样做,后果很轻微,除非您正在生成大量进程。内核必须保留进程对象(我认为这大致类似于UNIX中的僵尸进程),但进程对象的数量没有固定限制,终止的进程只需要内核中的少量内存。一旦进程退出,泄漏的资源将自动清理 对于句柄的引用计数,句柄不进行引用计数