Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 15.11.2015
Сообщений: 30

Как именно работает Fork бомба

10.02.2020, 00:02. Показов 843. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, я новичок и не особо знаком с shell скриптами, но вот попалась мне такая функция
PowerShell
1
:(){ :|: & };:
. Прогуглив форумы, я понял, что на самом деле это функция которая вызывает две копии своей функции и тд, но вопрос как именно она это делает? Насколько я знаю pipe(|) берет output от функции и передает его в input другой, но у нашей функции ведь нет output-а и input-а, что же тогда происходит на самом деле? Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2020, 00:02
Ответы с готовыми решениями:

Как именно работает директива using?
Здравствуйте, уважаемые форумчане! Я изучаю основы языка C++ по книге С.Прата. Наткнулся на такой отрывок: "Директива using делает...

Как работает метод Post, как именно он пересылает данные
Всем доброго времени суток. Прошу прощения если я опять ошибся разделом и уже задолбал весь форум своими постами, но обратиться больше...

Как работает функция GetAsyncKeyState, как проверить её результат(именно наименьший бит)
#include "stdafx.h" #include <Windows.h> int _tmain(int argc, _TCHAR* argv) { SHORT s = 0; while(true) ...

1
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
10.02.2020, 09:37
Цитата Сообщение от Kit4 Посмотреть сообщение
но у нашей функции ведь нет output-а и input-а
Здесь вывод первой функции выполненой в текущей оболочке перенаправляется в пайп тоесть баш открывает для выполнения
подоболочку, связывает stdout текущей с stdin подоболочки и запускает в ней копию функции в фоне, но поскольку в функцию параметры передаются не через stdin то она спокойно выполняется открывая рекурсивно другие подоболочки. Получается цепная реакция
Безболезненно можете поэкспериментировать
Bash
1
2
3
4
5
6
#!/bin/bash
my() {
        echo $1
}
 
my hi | my bye
получим
Bash
1
bye
потому что вывод первой функции в текущей оболочке мы перенаправили в другую подоболочку с запущенной копией функции
и только вторая связанная с stdout выдала нам результат
Немного обезопасим вашу бомбу
Bash
1
2
3
4
5
6
#!/bin/bash
set -x
my(){
        (( $1 )) && my $(($1-1)) | my $(($1-1)) &
}
my 5
посмотрим сколько всего получилось функций c терминатором 0
Bash
1
2
3
4
5
my 5 |& grep -c 'my 0'
получим вот такую прогрессию.
+ my 5
+ grep -c 'my 0'
32
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2020, 09:37
Помогаю со студенческими работами здесь

Не могу понять алгоритм. Как именно он работает
Не могу понять сам алгоритм. Как именно он считает. Само задание: дано n блоков, какое количество всевозможных лестниц можно из них...

не компилируется fork: Undefined reference to fork
написал маленькую fork-бомбу #include <stdio.h> #include <stdlib.h> int main() { while(1) { fork(); printf("HELLO...

Fork, не работает процесс-ребенок
Доброго дня всем. Я - новичок в программировании. Есть цель написать программу, которая бы писала в файл 5 случайных чисел родительским...

Как именно в методах расширения указать, что переходить нужно именно главный контроллер?
В проекте есть несколько Areas. Маршрутизация нстроена так (для наглядности сократил) public class RouteConfig { ...

Объясните, как работает эта программа, а именно знак равенства (==) в цикле While
Всем привет! Извиняюсь за глупый вопрос, недавно начал учить Си. Объясните как работает это программа, а именно знак равенства (==) в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru