c - C fork() 和指针交互
问题描述
所以,我写了这个简单的程序:我分配一个整数(获取它的指针),fork() 几次,然后打印地址和那个地址中的值。
int main() {
int* p = malloc(sizeof(int));
(*p) = 0;
fork();
fork();
fork();
(*p)++;
sleep(1);
printf("%p\t%d\n", p, *p);
return 0;
}
我希望输出是地址的 8 倍,然后是值 8,因为它增加了 8 倍,但输出是:
0x55befa116260 1
0x55befa116260 1
0x55befa116260 1
0x55befa116260 1
0x55befa116260 1
0x55befa116260 1
0x55befa116260 1
0x55befa116260 1
谁能解释这种行为?
解决方案
推荐阅读
- java - JFrame中JPanel的大小
- python - 如何使用 Python 请求模块接受 Youtube cookie
- python - 如何根据 Pandas 中的空值有条件地左移
- istio - 多集群/多主网格中的共享 istio 出口网关
- javascript - 如何设置环境变量,如 playwright-cucumber js 的测试环境
- wordpress - 更改 iframe 而不刷新页面以更改电影源
- sql - 如何阻止我的查询提取重复项?
- ruby-on-rails - 该错误是否表明我在部署到 heroku 时不应该在嵌入式 ruby 中链接方法?
- amazon-quicksight - 是否可以在 AWS Quicksight 上显示 QuestDB 数据?
- java - 图像位平面切片中的计算