%0|%0
を含む.batまたは.cmdファイルを実行すると、コンピュータが大量のメモリを使用し始め、数分後にコンピュータが再起動されます。なぜこのコードはあなたのWindowsをブロックするのですか?そして、このコードはプログラムによって何をしていますか?それは "バグ"と見なすことができますか?%0 |%0とは何ですか?どのように動作しますか?
答えて
これはfork bombのWindows版です。
%0
は、現在実行中のバッチファイルの名前です。ちょうどこの行含むバッチファイル:
%0|%0
はすぐに多くのプロセスを作成し、システムを遅くし、再帰的に永遠に自身を実行しようとしています。
これはウィンドウのバグではなく、バッチファイルで行うのは非常にばかげたことです。
なぜ%0 |%0はウィンドウを分割しますが、%0は分割しません。 – Pavel
@Pavel: '.bat'ファイルは次のようになります:ファイルの最後にあるread命令は終了します。 %0を実行した場合: プロセス1:起動し、%0を実行します(プロセス2を作成します)。その後、die プロセス2:起動し、%0を実行します(プロセス3を作成します)。 [...]あなたはいつも、作成者が死んでしまうので、実行中のプロセスは2つしかありません。 フォークボムのポイントは、2つのバージョンを作成することです。したがって、P1は2つのプロセス(1 'と1 ")を作成し、それらの2つのプロセスはそれぞれ2つ(つまり4つ)の指数関数を作成します。 – pltrdy
これはフォークボムとして知られています。 オプションがなくてもシステムを再起動するまで、分裂し続けます。 http://en.wikipedia.org/wiki/Fork_bomb
これは論理爆弾であり、自分自身を作り直し続け、すべてのCPUリソースを占有します。あまりにも多くのプロセスでコンピュータに過負荷を与え、強制的にシャットダウンします。これでバッチファイルを作成して起動すると、taskmgrを使って終了することができます。あなたはこれをかなり早くやる必要があります。そうしないと、コンピュータが遅すぎて何もできなくなります。
概要:
%0|%0
がfork bombです。同じプログラムのコピーを非同期に実行するパイプ|
を使用して、別のプロセスを起動します。これはCPUとメモリを大量に消費し、システムをほぼ停止させる(またはシステムをクラッシュさせる)こともあります。この仕組み
:
%0
は、現在のプログラムを実行するために使用されるコマンドを指します。たとえば、script.bat
パイプ|
パイプ|
シンボルは、最初のコマンドシーケンスの出力または結果を2番目のコマンドシーケンスの入力とします。フォークボンベの場合は出力がないので、入力せずに2番目のコマンドシーケンスを実行するだけです。
例を展開すると、%0|%0
はscript.bat|script.bat
を意味する可能性があります。これは再度実行されますが、同じプログラムを(入力なしで)もう一度実行する別のプロセスを作成します。
- 1. notifyItemRangeChanged(0、this.data.size())とは何ですか;この例ではどのように動作しますか?
- 2. toolTip.AutoPopDelay = 0の動作は何ですか
- 3. TCLのステートメントは{0}のように動作しますか?
- 4. tempWord [0] = '\ 0' 何とか
- 5. AWS:0.0.0.0/0と::/0はどういう意味ですか?
- 6. bashコマンド "grep -v":0 ""はどのように動作するのですか
- 7. -0をObjective-Cで-0 <0と定義するにはどうすればよいですか?
- 8. [0]はlen(a [0])で何を表していますか?
- 9. PythonでNearest Neighbor Algorithmを使用して配列出力[0 0 0]を[0、0、0]に変換するにはどうすればよいですか?
- 10. sys.exit(0)とos._exitの違いは何ですか(0)
- 11. (char)0と '\ 0'の違いは何ですか? C内
- 12. コード内のaveRP [0] == 0およびaveRP [0]> 0は何を意味しますか?
- 13. Cはリテラルchar '0'をint 0(ゼロ)にキャストします、どうですか?
- 14. $( '#div')[0]で '[0]'はどういう意味ですか?
- 15. JavaScriptで(0&1)とは何ですか?
- 16. Rubyで$ _ [0]、$ _ [1]とは何ですか?
- 17. とは何ですか? JavaScriptでどのように動作しますか?
- 18. PSR-0とは何ですか?
- 19. java.lang.ArrayIndexOutOfBoundsExceptionとは何ですか?0?
- 20. 1 << 0とは何ですか?
- 21. WicketのResourceReferenceとは何ですか?どのように動作しますか?
- 22. `kill(0、SIGINT)`は何をしますか?
- 23. cur.fetchone()[0]は何をしますか?
- 24. glUseProgram(0)は何をしますか?
- 25. SVGとは何ですか、どのように動作しますか?
- 26. ガベージコレクションとは何ですか、どのように動作しますか?
- 27. 参照カウンタとは何ですか?どのように動作しますか?
- 28. ファイルシステムプロトコルとは何ですか?どのように動作しますか?
- 29. Windowsキットとは何ですか?どのように動作しますか?
- 30. なぜ!(0 || 1 || 0)は0ですか?
[バッチフォークボム?]の複製がありますか?(http://stackoverflow.com/questions/8949103/batch-fork-bomb) – Cerbrus