linux open 字符设备返回错误

zyh19851025 2012-01-12 01:41:48
在海思linux下,使用open以字符设备打开flash的某个分区返回-1,不知道原因呀,希望得到大家的指点:
int fk=0;
fk=open("/dev/mtd1",O_RDWR);
ota_debug("%x\n",fk);
打印出的fk是0xffffffff
不知道是不是和内核有关系呢?
...全文
454 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyh19851025 2012-01-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yinzhifeng6666 的回复:]
通过这个程序可以发现错误,运行后的错误提示是No such file or directory
[/Quote]
之后我在/dev下查看 ,果然,目录是这样的:
/dev/mtd/1,怪不得使用/dev/mtd1打不开呢,
问题解决了,谢谢大家,看来以后要细心呀
windman521 2012-01-14
  • 打赏
  • 举报
回复
错误原因说的很清楚了
yinzhifeng6666 2012-01-13
  • 打赏
  • 举报
回复
你定义的int是有符号整型,4个字节,你的系统默认应该是逻辑补充位,即补齐的是符号位,-1的符号位是1,所以会出现0xffffffff这中情况。
yinzhifeng6666 2012-01-13
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <fcntl.h>
#include <error.h>
#include <stdlib.h>

int main(void)
{
int fk;
if(fk = open("/dev/mtd1",O_RDWR) < 0)
{
perror("open");//根据错误号打印错误,头文件是<error.h>
exit(1)
}

return 0;
}
通过这个程序可以发现错误,运行后的错误提示是No such file or directory

飞天舞 2012-01-12
  • 打赏
  • 举报
回复
df命令查看一下,mtd1的情况。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧