如果我运行经典的bash forkbomb:
:(){ :&:&};:
Run Code Online (Sandbox Code Playgroud)
我的系统在几秒钟后挂起.
我试着用C编写一个forkbomb,这里是代码:
#include <unistd.h>
int main( )
{
while(1) {
fork();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,系统的响应速度会降低,但我可以在按下时杀死该过程(即使在几分钟后)^C.
上面的代码与我发布的原始bash forkbomb不同:它更像是:
:( )
{
while true
do
:
done
}
Run Code Online (Sandbox Code Playgroud)
(我没有测试它;不知道它是否挂起系统).
所以我也尝试实现原始版本; 这里的代码:
#include <unistd.h>
inline void colon( const char *path )
{
pid_t pid = fork( );
if( pid == 0 ) {
execl( path, path, 0 );
}
}
int main( int argc, char **argv )
{
colon( argv[0] );
colon( …Run Code Online (Sandbox Code Playgroud) 我读了很多关于如何在c ++中实现multimethod的文章:
为什么c ++中没有多方法?
为什么他们不受c ++标准的支持?