منع بيثون فرعي أو جانبي من اجتياز قوات الدفاع والأمن في ويندوز؟

StackOverflow https://stackoverflow.com/questions/408039

سؤال

وحدة فرعي أو جانبي بايثون افتراضيا يمر كل اصفات الملفات مفتوحة لأي طفل العمليات التي تولدها. وهذا يعني أنه إذا كانت عملية الأصل هو الاستماع على منفذ، وقتلت، فإنه لا يمكن إعادة تشغيل وبدء الاستماع مرة أخرى (حتى باستخدام SO_REUSEADDR) لأن الطفل لا يزال في حوزته أن اصف. ليس لدي أي سيطرة على عملية طفل.

ووفرعي أو جانبي POpen منشئ لا يقبل الجدل close_fds، التي ستغلق اصفات على الطفل، تماما كما أريد. ومع ذلك، هناك قيود، إلا على ويندوز، يمنعها من أن تستخدم إذا تم تجاوز أيضا المدخل / المخرج المعياري، الذي أحتاج إلى القيام به.

لا أحد يعرف من عمل في جميع أنحاء لهذا على ويندوز؟

هل كانت مفيدة؟

المحلول

ما يبدو أن معظم المعلومات ذات الصلة التي يمكن أن أجد: <لأ href = "http://msdn.microsoft.com/en-us/library/ms724935٪28VS.85٪29.aspx" يختلط = " نوفولو noreferrer "> SetHandleInformation ، المشار إليها في هذه المقالة ، يجب أن يوفر لك المؤشرات.

وستحتاج على الارجح لاستخدام pywin32 و / أو ctypes لتحقيق ما تريد.

نصائح أخرى

وأنا لم يكن لديك مربع حول النوافذ، لذلك هذا هو لم تختبر، ولكن كنت تميل إلى تجربة الطرق os.dup وos.dup2. تكرار واصفات الملفات واستخدام تلك بدلا من تلك الأم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top