当前位置: 技术问答>linux和unix
内核与用户进程通信得问题,求助!
来源: 互联网 发布时间:2015-07-14
本文导语: 在内核中用netlink_unicast( )向用户进程发送数据,数据其中得一个结构为: struct rule{ char *code; char *username; } 填充这个结构以后发送,可是用户进程收到的这个结构却是空的,怎么回事啊?? ...
在内核中用netlink_unicast( )向用户进程发送数据,数据其中得一个结构为:
struct rule{
char *code;
char *username;
}
填充这个结构以后发送,可是用户进程收到的这个结构却是空的,怎么回事啊??
struct rule{
char *code;
char *username;
}
填充这个结构以后发送,可是用户进程收到的这个结构却是空的,怎么回事啊??
|
将结构改为
struct rule{
char code[xx];
char username[xxx];
};
试试
struct rule{
char code[xx];
char username[xxx];
};
试试
|
内核模块作为客户端,使用提供给系统调用的比较底层的接口,建议你好好看看/linux/net.h几个关于内核网络的头文件,还有就是/net/socket.c中SOCKET的实现代码.然后客户端利用sock_create, struct *socket->ops->connet连接服务器,使用sock_sendmsg和sock_recvmsg与服务器端进行数据传输,你需要了解msghdr这个结构体的用法,服务器端就很简单了,跟普通的用户级的网络程序一样就行!!
|
内核模块拷贝内容给用户程序空间的指针,要用copy_to_user函数,而不能用memcpy。