内核上传一个字符串,我在应用层拿到以后对它进行判断,发现明明一样的两个字符串,就是不相等。然后我随手加了一个比较又是ok的,是不是这个指针传的有问题?
如下
130 //接受内核态确认信息
131 ret = recvfrom(skfd, &info, sizeof(struct u_packet_info),0, (struct sockaddr*)&kpeer, &kpeerlen);
132 if(!ret){
133 perror("recv form kerner:");
134 exit(-1);
135 }
136
137 receiveMSG = (HI_CHAR *)info.msg;
138
139 printf("message receive from kernel:%s\n",(HI_CHAR *)info.msg);
140 printf("receiveMSG: %s\n",receiveMSG);
141 //内核和用户进行通信
142
143
144 msgCtrl(receiveMSG);
27 void msgCtrl(HI_CHAR *msg){
28 //mediarevert
29 printf("itachi==>msgCtrl receive : %s\n",msg);
30 HI_CHAR *data = "mediarevert";
31 HI_CHAR *recvmsg;
32
33 recvmsg = msg;
34 printf("recvmsg :%s , len = %d , data's len : %d\n",recvmsg,sizeof(recvmsg),sizeof(data));
35
36 if(0==strcmp(data,recvmsg)){
37 printf("close mediaserver in init.rc!!!\n");
38 property_set("ctl.stop", "media");
39 sleep(10);
40 printf("open mediaserver in init.rc!!!\n");
41 property_set("ctl.start", "media");
42 }else{
43 printf("invalid command-line option\n");
44 }
45
46 char *a = "10";
47 char *b = "10";
48
49 if(0==strcmp(a,b)){
50 printf("a=b\n");
51 }else{
52 printf("a != b\n");
53 }
打印如下:
message sendto kernel are:This message is from itachi's application space, len:64
message receive from kernel:mediarevert
receiveMSG: mediarevert
itachi==>msgCtrl receive : mediarevert
, len = 4 , data's len : 4
invalid command-line option
a=b