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....求大神帮忙
展开
 我来答
匿名用户
2013-08-18
展开全部

我照着写个例子  可以生成文件啊

#include <iostream>
#include <string>
#include <fcntl.h>
#include <sys/stat.h>
using namespace std;

int main()
{
     string path = "/home/lianyu/Desktop/2.txt";
     int fd = open(path.c_str(),O_WRONLY|O_CREAT,644);
 }

 

执行 生成2.txt

haitfan
2013-08-18 · TA获得超过972个赞
知道答主
回答量:333
采纳率:0%
帮助的人:103万
展开全部
&#47;*这是一个简单的用户程序与驱动交互的例程*&#47;void main(void)  {      int testdev;      int i;      char buf[10];     &#47;* 这里是用的open系统调用,是linux内核接口函数,不是库函数,返回fd,详细请google ,这个open最终会调用驱动中的open函数(代码流程是这样的open()-&gt;sys_open()-&gt;filp_open()-&gt;dentry_open()-&gt;驱动open)*&#47;    testdev = open (&quot;&#47;dev&#47;test&quot;,O_RDWR);      if(testdev == -1)      {          printf(&quot;Cann&#39;t open file.....&#47;n&quot;);          exit(0);      }      printf(&quot;buf = 0x%x&#47;n&quot;,buf);  &#47;* 下面的read write 和ioctl是用户程序和内核驱动的最直接的交互方式 *&#47;    read(testdev,buf,10);     write(testdev,buf,1);      led_ctl.port=&#39;G&#39;;      led_ctl.bit=5;      led_ctl.value=0;      ioctl(testdev,GPIO_IO_SET_GPG,&amp;led_ctl);      printf(&quot;%s&quot;,buf);      pause();      close(testdev);  }  你基础有点弱,慢慢学习就知道了,参考下《linux设备驱动程序》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
请加Q45253562
2014-12-03 · 超过31用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:86.8万
展开全部
参考答案 你走的那天,我决定不掉泪,迎着风撑着眼帘用力不眨眼……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你泪料激恋6
2013-08-19 · TA获得超过2131个赞
知道小有建树答主
回答量:686
采纳率:0%
帮助的人:992万
展开全部
0644 八进制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式