问题描述
- C语言:进程间传递指针来实现数据操作是否会有安全隐患?
-
涉及两个进程,A和B,A和B可通信。进程A管理一个链表,A会把某个链表节点的一些特征参数发送给进程B,后面进程B会把一开始得到的节点特征发送回A,A再对链表进行遍历匹配,匹配对应的节点,进行操作。
如果A一开始把节点指针直接给B,B后面需要对节点操作时直接把指针发回给A,这样就不用遍历链表。但是这样做是不是不合理?就是是不是有安全性之类的问题?
解决方案
跨进程传递指针没有意义,对方进程拿到指针也访问不了内存。既然如此,为何要传。
解决方案二:
指针对本进程空间有效,跨进程不行,你可以用内存映射,管道等跨进程通讯
解决方案三:
想要进程之间传递指针,那么就需要用共享内存方式,这样多个进程都可以访问这一块空间,传递指针也是可以的
解决方案四:
相当于A把一个节点的地址给了B,B以后想对那个节点进行操作的时候,只要把节点地址告诉A,A就知道B需要操作哪个节点。类似ID的作用。
时间: 2024-12-03 17:18:55