如下代码中,fd为一个已经打开的串口,可以执行写入操作,但 if ( read(fd, Abuf, BUF_SIZE-1) > 0 )以后的所有语句均不执行,请高手指教!
int ATLog(int fd)
{
int re,len;
char buf[BUF_SIZE];
memset(buf, 0x00, BUF_SIZE);
strcpy(buf, DATA_REQ);
len=strlen(buf);
re=write(fd,buf,len);
if(re<0)
{
fprintf(stdout, "send DATA_REQ error!\n");
return -1;
}
fprintf(stdout, "send DATA_REQ Success!\nDATA_REQ=%s\n",buf);
// usleep(WAIT_TIME);
sleep(1);
char Abuf[BUF_SIZE];
memset(Abuf, 0x00, BUF_SIZE);
//fprintf(stdout, "send Success!\nDATA_REQ=%s\n",buf);
if ( read(fd, Abuf, BUF_SIZE-1) > 0 )
{
fprintf(stdout, "send Success!\nDATA_REQ=%s\n",buf);
if(strstr(Abuf,DATA_S))
{
fprintf(stdout,"GOODCONFIG!%s",Abuf);
return 1;
}
else
{
if(strstr(Abuf,"OK"))
{
fprintf(stdout,"zhen de shi ni a !%s",Abuf);
}
else
{
fprintf(stdout,"WHYCNF!%s",Abuf);
}
}
fprintf(stdout,"buf=%s",Abuf);
}
else
{
fprintf(stdout, "else!\nDATA_REQ=%s\n",buf);
fprintf(stdout,"kong!%s",Abuf);
}
fprintf(stdout, "kan bu dong!\nDATA_REQ=%s\n",buf);
return -1;
}