gpt4 book ai didi

c - 没有循环的 Fork-Exec 炸弹

转载 作者:行者123 更新时间:2023-11-30 19:42:12 28 4
gpt4 key购买 nike

我正在学习C,遇到了一个小问题。在维基百科和 StackOverflow 上阅读了有关 fork() 炸弹的内容后。我想实现相同的功能,但使用命令行参数。

我想无休止地调用 firefox/chrome,但无法在下面的程序中执行相同的操作。任何帮助将不胜感激。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <string.h>
#include <errno.h>

int main(int argc, char **argv)
{
pid_t pid;
char *parmList[] = {"firefox", "index.html", NULL};
int a;

if ((pid = fork()) == -1)
{
perror("fork failed");
}
if (pid == 0)
{
a = execvp("/usr/bin/firefox", parmList);
fprintf(stdout, "execvp() returned %d\n", a);
fprintf(stdout, "errno: %s (%d).\n", strerror(errno), errno);
}
else
{
waitpid(pid, 0, 0);
}

return 0;
}

最佳答案

您应该澄清您遇到的错误,因为我不想运行 fork 炸弹,但您编写的代码不会爆炸(在循环内调用 fork() ) 。它生成一个进程,等待一会,然后退出。

关于c - 没有循环的 Fork-Exec 炸弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674955/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com