LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: kiron

请教一个写法:如何定义一个需要运行时限制值的结构?

[复制链接]
 楼主| 发表于 2005-10-10 10:35:39 | 显示全部楼层
我这儿的FIFO就是当成消息队列用,他只处理这种结构的数据。别的程序不会往里面写其他的数据,所以FIFO之前没有数据处理。
回复 支持 反对

使用道具 举报

发表于 2005-10-10 17:15:54 | 显示全部楼层
可以定义结构
struct myinfo
{
int len;
char data[0];
}

分配的时候
struct myinfo *ptr = (struct myinfo *)malloc(fifosize);

这样就是一个动态大小的结构了
使用的话和普通struct体的使用相同,char data[0]表示了data的内存起始地址.
回复 支持 反对

使用道具 举报

发表于 2005-10-10 21:36:38 | 显示全部楼层
yj1804 的方法不错.
回复 支持 反对

使用道具 举报

发表于 2005-10-11 22:11:08 | 显示全部楼层
用msgget得到消息队列,或者用 socketpair代替pipe,这些进程间通信的方法都没有那个大小的限制。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表