永发信息网

arm6410,linux,c语言,read函数返回-1,错误:bad address

答案:4  悬赏:20  手机版
解决时间 2021-02-26 04:32
采用串口通信,部分代码如下:
int nread,i=0 ;
while(i<10)
{
char *myBuff2="#000000#000000#000000#000000T000\r\n";
char myBuff4[]="#222222#222222#222222#222222T222\r\n";

if ((nread = read(fd,myBuff2,strlen(myBuff2)))>0)
{
printf("nLen %d\n",nread);
memcpy(myBuff4, myBuff2, strlen(myBuff2));
printf("hello\n");
printf("%s\n",myBuff4);
printf("hi\n");
}
else
{
printf("出错啦!\n");
perror("read:");
}
i++;
}
最佳答案
可以事先检查一下传递给 read() 函数的 fd 是否合法, 即在 'if ((nread = read(fd,myBuff2,strlen(myBuff2)))>0)' 之前判断 if ( fd == NULL ) printf("出错啦!\n");
全部回答
上步连接出错了,感觉该是没连上,你就去读写了,描述符不对
应该先调用 open 函数 if( fd = open(“路径名”,O_WRONLY) == -1) { perror("open failed"); } 这样保证你的fd 参数才是有效的; 然后 char *myBuff2="#000000#000000#000000#000000T000\r\n"; 是有问题的, myBuff2 指针指向的是只读的数据段,不可以修改, 你把它变成数组 char myBuff2[]="#000000#000000#000000#000000T000\r\n"; 就没问题了 示例: #include #include int main(int argc, char *argv[]) { int nread,i=0 ; int fd; if( fd = open("./hello.c",O_WRONLY) == -1) { perror("open failed"); return -1; } printf("open success \n"); while(i<10) { char *myBuff2="#000000#000000#000000#000000T000\r\n"; char myBuff4[]="#222222#222222#222222#222222T222\r\n"; if ((nread = read(fd,myBuff4,strlen(myBuff2)))>0) { printf("nLen %d\n",nread); memcpy(myBuff4, myBuff2, strlen(myBuff2)); printf("hello\n"); printf("%s\n",myBuff4); printf("hi\n"); } else { printf("出错啦 !\n"); perror("read:"); } i++; } return nread; }
1、可以事先检查一下传递给 read() 函数的 fd 是否合法,即在 'if ((nread = read(fd,myBuff2,strlen(myBuff2)))>0)' 之前判断 if ( fd == NULL ) printf("出错啦!\n"); 2、read()函数是文件操作函数,在c语言中很重要。 函数的返回值如下: (1)如果成功,返回读取的字节数; (2)如果出错,返回-1并设置errno; (3)如果在调read函数之前已是文件末尾,则返回0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
玻璃珠子里面是什么
房客偷我们家水,每两个月水表固定就是一吨水
慈口隧道地址有知道的么?有点事想过去
网签均价和实际成交均价有什么不一样
“我用最真挚的爱去爱你” 梵文怎么写
在我外出度假的时候照顾一下我的猫吗
消防线怎么接
家庭电路进户的两条输电线中有一条叫什么线,
某中学历史兴趣小组在研究美国1787年宪法时,
铝材厂宿舍在哪里啊,我有事要去这个地方
火车站人那么多。买什么东西赚钱。
“螺口”用英语怎么说
外贸行在什么地方啊,我要过去处理事情
氨基丁酸(GABA)作为哺乳动物中枢神经系统中广
公司的网络重启一下网关,就能上,但是一会又断
推荐资讯
道祥电脑编织厂地址在哪,我要去那里办事
福圆招待所地址在什么地方,想过去办事
国信典当在哪里啊,我有事要去这个地方
十家宾馆在哪里啊,我有事要去这个地方
2015临床助理执业医师什么书好
什么叫糖水片
比喻巧合的成语
历尽沧桑的意思
返利网上显示返利多少钱是买完返吗?
新加坡的五星级酒店wifi都是免费的吗?
穷人怎么富起来
如图,已知正方形ABCD的边长AB=1,正△PAE的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?