gpt4 book ai didi

C: fork 新进程失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:05 26 4
gpt4 key购买 nike

以下代码中的 fork 不起作用!它永远不会进入运行功能。你能告诉我这里有什么问题吗?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void run(char* a)
{
char* k=a;
int i;
for(i=0;i<3;i++)
k[i]='s';
printf("hi");
return;
}
int main()
{
char* a="cbd";
pid_t j;
j=fork();
printf("%d\t",j);
int y;
if(j==0)
run(a);
int i;
for(i=0;i<3;i++)
printf("%c\t",a[i]);
return 0;
}

输出是

24180  c b d

最佳答案

实际上 run() 函数被调用了。但是 k[i]='s'; 声明的问题。 “cbd”是一个字符串文字并且是只读的。

在本地为字符串分配内存并传递地址。

就像@Andy 提到的,子进程崩溃了。

关于C: fork 新进程失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17562571/

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