2012-01-20 24 views
9

Wikipedia'da çatal bomba bakıyordu, ve toplu örnekleri vardı:Toplu çatal bombası mı?

%0|%0 

VEYA

:here 
start ''your fork bomb name''.bat 
goto here 

VEYA ikinci iki anlama

:here 
start %0 
goto here 

, başka başlamak Kendilerini örnek ve tekrarlayın, ama ben ilkini anlamıyorum. Boru hattının, dosyanın çıktısı ile soldaki dosyayı sağa doğru yürüttüğünü okudum. Neden çatal bomba olamaz:

%0 

Bunun kendisini diyoruz, ama sonra hemen sonlandırmak, ama neden %0|%0 da sonlandırmak olmaz ki düşündün? Yeni örnek yeni örnekler vermeye devam etse de, ikincisine başladıktan sonra yapılan ilk şey değil mi? İlki olanı devam ettiren nedir?

düzenleme: Bu, özyinelemeli çağrılar geri gelinceye kadar örneklerin hiçbiri sonlanamadığı için dönüyor mu? Bunun anlamı sadece ilk %0 mu?

cevap

7

% 0 hiçbir zaman sona ermeyecek, ancak bir kereden fazla işlem oluşturmaz, çünkü denetimi anında 2 toplu iş komut dosyasına aktarır (ki bu kendi başına olur).

Ancak bir Windows borusu, ana işlemin yanı sıra borunun her iki tarafına yeni bir işlem oluşturur. Ana işlem, borunun her iki tarafı sona erene kadar tamamlanamaz. Yani basit bir boru ile ana program 3 işlem olacaktır. Borunun her iki tarafının üst kümeyi tekrarlayan şekilde çağırması halinde bombanın hızlıca nasıl kontrol altına alındığını görebilirsiniz!

+0

İlk özyinelemeli çağrı hiçbir zaman geri dönmezse, borunun ikinci kısmı nasıl çağrılır? – mowwwalker

+2

İki taraf eşzamansız olarak çalıştırılıyor – dbenham

+1

Boru hattının ikinci yarının iadesiyle ikinci yarısını aradığı söylendi: http://www.csie.ntu.edu.tw/~r92092/ref/win32/win32scripting.html # Win32Scripting-Komut-Yönlendirme-Ve-Boru Hatları – mowwwalker