gpt4 book ai didi

c - 在 C 中的 fork() 之后在进程之间共享数据

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:00 25 4
gpt4 key购买 nike

<分区>

在下面的代码中,我需要从父进程读取 num 并在 fork 进程 child_proc() 中使用。但它看不到父进程中读取的内容。我做错了什么?

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

int
is_prime(void);
void
child_proc(void);

int num = -1;

int
main(void)
{

pid_t pid = fork();

if (-1 == pid) {
printf("Internal error\n");
exit(1);
}
if (0 == pid) {
printf("Starting child...\n");
child_proc();
} else {
printf("Starting parent...\n");
printf("Enter number to check:\n");
scanf("%d", &num);
printf("You entered: %d\n", num);
}
sleep(1);
if (pid == 0) {
printf("Child Finished\n");
} else {
printf("Parent Finished\n");
}
return 0;
}

int
is_prime(void)
{
int i;
for (i = 2; i <= num; i++) {
if ((num != i) && (num % i == 0)) {
return 0;
break;
}
}
return 1;
}

void
child_proc(void)
{
if (num <= 1) {
printf("Incorrect value: %d\n", num);
} else {
int rc = is_prime();
if (0 == rc) {
printf("%d is not a prime\n", num);
} else {
printf("%d is a prime\n", num);
}
}
}

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