免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5286 | 回复: 5
上一主题 下一主题

linux进程间如何传递比较复杂一点的数据结构、指针、链表等? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-27 17:26 |只看该作者 |倒序浏览
比如有这样一个数据结构
struct test
{
int data_length;
int *data;
}test_data;

这样的一个数据如何在不同进程中传递?

又比如如下的一个链表在不同的进程中传递呢?
struct list_node
{
  struct test test_data;
  struct list_node *next;
}

以上这些数据一般用哪种方式传递?管道、共享内存、套接字?具体如何操作?谢谢

论坛徽章:
1
射手座
日期:2014-08-04 16:49:43
2 [报告]
发表于 2011-07-27 17:40 |只看该作者
看你的需求了。。。

进程传递只要指定好 类型就OK......

共享内存 如果是链表的话 肯定不合适,因为是不连续的。。

管道一面写 一面读 挺好的。。。

域套接字 不经常用。。。。


兄弟告诉你个简单的,,,, 用线程,因为他们共享内存空间,  只要做好同步 OK....


要用最简单的方法完成一件事 ,不要给自己找麻烦。。

论坛徽章:
0
3 [报告]
发表于 2011-07-27 17:42 |只看该作者
如果不是父子进程要用套接字了

论坛徽章:
0
4 [报告]
发表于 2011-07-27 20:41 |只看该作者
回复 2# hanzhenlll


    小弟刚学linux,也曾想过用线程。但是这里需求是这样的:主线程里面不停的读客户输入。针对不同客户(有很多个客户)的输入,创建子线程做出相应的反应(输入的参数变化而已,处理函数都是相同的)。这样貌似写程序不太好写。如何做到创建的线程都是同一个处理函数,而只是输入的参数不同呢?

论坛徽章:
0
5 [报告]
发表于 2011-08-02 14:07 |只看该作者
回复 4# paixian1987

兄弟你用进程吧,socket的af_unix来实现的,可以做的。管道也可以,这两个其实差不多

论坛徽章:
0
6
发表于 2011-08-02 16:44
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP