Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
}else{
printf("I'm a child ");
}
return 0;
}
Откомпилируем и выполним текущий пример. Для того чтобы «увидеть в глаза» нашего зомби, получим список процессов:
[dashin@dashin zombies]$ ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:05 init
..............................................
18730 pts/4 S 0:00 bash -rcfile .bashrc
18767 pts/4 S 0:00 ./one_zomb
18768 pts/4 Z 0:00 [one_zomb <defunct>]
18864 pts/5 R 0:00 ps ax
Значение поля STAT, равное Z, означает, что данный процесс и есть наш зомби. Но поодиночке зомби не страшны, поэтому модифицируем предыдущий пример:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main(){
pid_t our_child;
while(our_child != -1){
our_child= fork();
if(our_child == 0){
return 0;
}
}
getchar();
return 0;
}
Итак, откомпилировав и выполнив текущий пример, мы получим максимальное количество процессов в системе. Если попробуем выполнить команду ps, то получим сообщение о невозможности выполнения нашей команды по известной нам причине (команда ps взята для примера, вызов практически любой команды будет завершён подобным образом).