当前位置: 技术问答>linux和unix
帮忙解决一个问题
来源: 互联网 发布时间:2016-05-14
本文导语: 用Linux脚本创建一个文件,大致语句: echo "Alarm_Of" > Alarm_COAL_Tmp.log date >> Alarm_COAL_Tmp.log 然后去读Alarm_COAL_Tmp.log文件内容(只需要读Alarm_Of这一行): char buf[8]; int handle; memset(buf,0,8); handle=open(AlarmFilePath,O_RDONLY); rea...
用Linux脚本创建一个文件,大致语句:
echo "Alarm_Of" > Alarm_COAL_Tmp.log
date >> Alarm_COAL_Tmp.log
然后去读Alarm_COAL_Tmp.log文件内容(只需要读Alarm_Of这一行):
char buf[8];
int handle;
memset(buf,0,8);
handle=open(AlarmFilePath,O_RDONLY);
read(handle,buf,8);
if (strcmp(buf,"Alarm_Of") == 0 )
{
...
}
打印发现buf内容除了Alarm_Of后面还有乱七八糟的东西,strcmp不成功,是不是Linux脚本创建文件是二进制写入,必须二进制去读呢?还是其他什么原因。谢谢
echo "Alarm_Of" > Alarm_COAL_Tmp.log
date >> Alarm_COAL_Tmp.log
然后去读Alarm_COAL_Tmp.log文件内容(只需要读Alarm_Of这一行):
char buf[8];
int handle;
memset(buf,0,8);
handle=open(AlarmFilePath,O_RDONLY);
read(handle,buf,8);
if (strcmp(buf,"Alarm_Of") == 0 )
{
...
}
打印发现buf内容除了Alarm_Of后面还有乱七八糟的东西,strcmp不成功,是不是Linux脚本创建文件是二进制写入,必须二进制去读呢?还是其他什么原因。谢谢
|
strcmp的问题.它只以''作为字符串结束.如果换成memcmp就应该没有问题了.或者在read后将buf后面加个''.
|
后面加上‘'试试