回答
你想使用共享内存。你将需要to open一个文件,使用this来设置长度(可能sizeof(* var)),mmap它。在叉子前面做这个。完成unmap it,close the file和unlink共享文件。
void *mem;
int shm_fd;
shm_fd = shm_open("file", O_CREAT | O_RDWR, 0644);
ftruncate(shm_fd, sizeof(int));
mem = mmap(0, sizeof(int), PROT_WRITE | PROT_READ, MAP_SHARED, shm_fd, 0);
/* fork it, use it */
munmap(mem, sizeof(int));
close(shm_fd);
shm_unlink("file");
修改它似乎是一个很好的计划,谢谢! – why 2011-04-25 08:38:04
Linux使用机制称为写入时复制。这基本上意味着,只要变量不是修改父项,新进程就共享一个变量。但在变量被修改之前,它被复制并且新进程使用复制。这是出于性能原因而完成的,技术被称为延迟优化。您可以将您的变量设置为静态,然后您可以直接访问它。
该变量将通过父进程 – why 2011-04-25 07:39:10
用C分叉会创建一个包含所有父变量副本的子进程。 如果你只是想要这个变量,那么你可以使用由fork创建的那个副本。 如果你想共享那个变量,你可以去实现IPC机制。 你可以看到一个很好的使用IPC机制的指南here
- 1. 如何访问父类中的变量
- 2. 如何通过多进程访问相同的变量C/C++
- 3. 访问父变量
- 4. 线程函数如何访问父线程的变量
- 5. 我如何访问父类变量?
- 6. 如何从子项访问父变量
- 7. 如何从函数访问父变量
- 8. 如何在C++中访问类变量
- 9. PHP访问父类变量
- 10. 父函数变量访问
- 11. 访问父组件变量
- 12. 访问父变量VueJS 2
- 13. 从父类访问变量
- 14. 访问PHP中的父变量内容
- 15. 如何等待子进程在父进程中设置变量?
- 16. 如何在as3中访问其父子项中的变量
- 17. 如何访问PHP smarty中父模板中定义的变量?
- 18. 如何从GDB访问C++程序中的变量与Python
- 19. 如何访问C中的父对象#
- 20. 如何从子进程设置父进程的环境变量?
- 21. 如何访问从父类扩展的子类中的变量
- 22. 访问C变量
- 23. 如何访问ui.route中的父范围变量 - onEnter方法?
- 24. 如何访问父函数中的变量?
- 25. 如何从子组件访问父组件中的变量?
- 26. 如何在PHP中访问父对象的类变量?
- 27. 如何访问子类中的父类整数变量?
- 28. 如何在Rails中访问父模型的实例变量?
- 29. 在父进程中的子进程中声明的访问#TempTable
- 30. Bash:子进程访问变量
你想分享进程间的变量还是只有副本是好的? – 2011-04-25 07:06:42