当前位置: 技术问答>linux和unix
传说很难的一个问题--全局变量问题
来源: 互联网 发布时间:2017-01-04
本文导语: 关于全局链表问题,把链表的起始地址放在全局变量里。父子进程通过这个全局变量来对这个链表进行读、增、删的操作。 流程大致如下: 在父进程里每收到一个客户端发来的数据包,边fork一个子进程。进行相关...
关于全局链表问题,把链表的起始地址放在全局变量里。父子进程通过这个全局变量来对这个链表进行读、增、删的操作。
流程大致如下:
在父进程里每收到一个客户端发来的数据包,边fork一个子进程。进行相关的操作以后,向链表中插入一个节点,然后退出子进程。父进程定时的去读取这个链表。现在问题就来了,在子进程中malloc一个节点并添加到链表中以后,子进程就退出了,刚才插入的那个节点的空间也被free了。所以父进程肯定也读不到链表的内容了。
请问遇到这种情况该怎么办啊?有没有好的解决办法?
流程大致如下:
在父进程里每收到一个客户端发来的数据包,边fork一个子进程。进行相关的操作以后,向链表中插入一个节点,然后退出子进程。父进程定时的去读取这个链表。现在问题就来了,在子进程中malloc一个节点并添加到链表中以后,子进程就退出了,刚才插入的那个节点的空间也被free了。所以父进程肯定也读不到链表的内容了。
请问遇到这种情况该怎么办啊?有没有好的解决办法?
|
共享内存
|
奇怪了,你子进程中malloc了,在退出前有free吗,如果有,为什么要这样设计呢
|
子进程是父进程的副本,不是共享,描述符可以保持打开,不意味着任何数据都是共享,用内存共享吧。
|
楼主自己搜搜共享内存,例子一把一把的。
http://blog.csdn.net/qiuxin315/article/details/6722307
看看这个,或许对你有帮助
http://blog.csdn.net/qiuxin315/article/details/6722307
看看这个,或许对你有帮助
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。