Linux open函数的问题
stringpath=filename;//filename是从其他地方传来的intfd=open(path.c_str(),O_WRONLY|O_CREAT,644);...
string path = filename;//filename是从其他地方传来的
int fd = open(path.c_str(),O_WRONLY|O_CREAT,644);
open失败,提示 protocol error....求大神帮忙 展开
int fd = open(path.c_str(),O_WRONLY|O_CREAT,644);
open失败,提示 protocol error....求大神帮忙 展开
4个回答
展开全部
/*这是一个简单的用户程序与驱动交互的例程*/void main(void) { int testdev; int i; char buf[10]; /* 这里是用的open系统调用,是linux内核接口函数,不是库函数,返回fd,详细请google ,这个open最终会调用驱动中的open函数(代码流程是这样的open()->sys_open()->filp_open()->dentry_open()->驱动open)*/ testdev = open ("/dev/test",O_RDWR); if(testdev == -1) { printf("Cann't open file...../n"); exit(0); } printf("buf = 0x%x/n",buf); /* 下面的read write 和ioctl是用户程序和内核驱动的最直接的交互方式 */ read(testdev,buf,10); write(testdev,buf,1); led_ctl.port='G'; led_ctl.bit=5; led_ctl.value=0; ioctl(testdev,GPIO_IO_SET_GPG,&led_ctl); printf("%s",buf); pause(); close(testdev); } 你基础有点弱,慢慢学习就知道了,参考下《linux设备驱动程序》
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参考答案 你走的那天,我决定不掉泪,迎着风撑着眼帘用力不眨眼……
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0644 八进制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询