当前位置: 技术问答>linux和unix
管道疑问?
来源: 互联网 发布时间:2016-03-28
本文导语: 我现在有一个结构变量(即一个队列),比如定义如下: struct cmd_queue_struct{ char *pdata; unsigned long ul_data_len; struct cmd_queue_struct *next,*pre; }cmd_queue; 我现在有多个进程想防问它,有没有人知道怎么利用管道机制来访...
我现在有一个结构变量(即一个队列),比如定义如下:
struct cmd_queue_struct{
char *pdata;
unsigned long ul_data_len;
struct cmd_queue_struct *next,*pre;
}cmd_queue;
我现在有多个进程想防问它,有没有人知道怎么利用管道机制来访问这个队列呢??
因为我看到的管道实列都是对char型的操作。
struct cmd_queue_struct{
char *pdata;
unsigned long ul_data_len;
struct cmd_queue_struct *next,*pre;
}cmd_queue;
我现在有多个进程想防问它,有没有人知道怎么利用管道机制来访问这个队列呢??
因为我看到的管道实列都是对char型的操作。
|
为什么要用管道来访问队列?
就算如同1楼实现了对指定队列元素的访问,对你也没有任何用处啊。跨进程的话,指针变量的值是没意义的。
跨进程+队列+管道==>不合适
如果楼主的要求是跨进程用管道访问多个数据的话,必须把数据整理成线性的数据,例如文件/共享内存/等等。
就算如同1楼实现了对指定队列元素的访问,对你也没有任何用处啊。跨进程的话,指针变量的值是没意义的。
跨进程+队列+管道==>不合适
如果楼主的要求是跨进程用管道访问多个数据的话,必须把数据整理成线性的数据,例如文件/共享内存/等等。
|
pipe可以读写struct
struct struct_test{
};
struct struct_test test;
int pipe_fd[2];
...
pipe(pipe_fd);//...
...
write(pipe_fd[1],&test,sizeof(struct struct_test));
...
struct struct_test{
};
struct struct_test test;
int pipe_fd[2];
...
pipe(pipe_fd);//...
...
write(pipe_fd[1],&test,sizeof(struct struct_test));
...
|