为何执行了fork bomb之后,在命令行无法执行命令了
时间: 2024-06-10 12:04:24 浏览: 5
执行了fork bomb之后,所有可用的系统资源都被占用,导致系统无法响应任何新的命令。这是因为fork bomb是一种恶意代码,通过无限制的制造子进程来占用系统资源,从而导致系统崩溃。一旦执行了fork bomb,需要重启系统才能恢复正常。建议不要在实际使用中尝试执行fork bomb,以免造成不必要的损失。
相关问题
linux c语言system执行命令行命令
在下,可以使用system函数执行命令行命令。具体用法如下:
```c
#include <stdlib.h>
int system(const char *command);
```
其中,command参数为需要执行的命令行命令,返回值为执行结果的返回状态码。例如,执行ls命令并输出结果可以这样实现:
```c
#include <stdlib.h>
int main() {
system("ls");
return 0;
}
```
注意,system函数会阻塞当前程序直到命令执行完成。如果需要在后台执行命令,可以使用fork和exec族函数。
为什么fork函数执行一次返回两次
fork()函数是用来创建一个新进程的。在fork()函数调用后,会在原进程的基础上创建出一个新的子进程,这个新的子进程会和原进程拥有一样的代码和数据空间。但是,它们是两个独立的进程,互不影响。
在fork()函数被调用时,操作系统会将原进程的地址空间复制一份给新的子进程。父进程和子进程共享文件描述符、信号处理等资源,但是它们各自拥有自己的进程ID、内存空间、注册表等资源。
因此,fork()函数执行一次,会返回两次。在父进程中,fork()函数返回新创建的子进程的进程ID;在子进程中,fork()函数返回0。这样可以在父进程和子进程中分别判断自己的执行情况,从而进行不同的操作。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)