免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4037 | 回复: 5
打印 上一主题 下一主题

驱动程序里面怎样创建txt文本文件? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-08 10:04 |只看该作者 |倒序浏览
大方向:在spi的驱动程序如何创建文本文件?
具体目标:在接收到数据后,把数据写入创建的文本文件。
注意:spi驱动程序已经成功完成,我只是想增加具有创建txt文件的一小段代码。
编程思路:当然这代码是一般程序的思路,驱动程序不知道哪要改。
  1. #include <stdio.h>
  2. #include <string.h>
  3. FILE *lg=NULL;
  4. char data[512];
  5. sprintf(data,"Received data is %s",RxBuffer);//received spi data is stored in RxBuffer
  6. lg=fopen("/lg_data.txt","w");
  7. fputs(data,lg);
  8. fclose(lg);
复制代码
Makefile文件
:
  1. SRCPATH=/usr/local/src/linux-2.6.24.4
  2. obj-m=ligang.o
  3. all:
  4. $(MAKE) -C $(SRCPATH) SUBDIR=$(shell pwd) modules
复制代码
错误:
报错是当然的,比如说找不到stdio.h,确实在=/usr/local/src/linux-2.6.24.4里面找不到,接下来FILE,fopen,fputs,fclose都说没有定义
请教:
怎么改正头文件,怎么改正这段小程序?谢谢

论坛徽章:
0
2 [报告]
发表于 2010-06-08 11:52 |只看该作者
这样是行不通的吧,fopen之类的函数是系统的api函数,用户态下通过这组函数进行系统调用,在内核态完成指定操作,你本省就在内核态中,这样是行不通的。如果要创建文件可以使用文件系统的函数来实现

论坛徽章:
0
3 [报告]
发表于 2010-06-08 12:28 |只看该作者
本帖最后由 lixiaogang110217 于 2010-06-08 12:31 编辑

回复 2# OLAY玉兰油


    明白。能再说的清楚些吗“使用文件系统的函数”。我就是想知道什么函数可以替换API的fopen之类的。谢谢!

论坛徽章:
0
4 [报告]
发表于 2010-06-08 12:57 |只看该作者
你可以先了解下系统调用过程,比如说fopen,它大致的过程是把系统调用号以及参数保存起来,再触发软终端进入内核态,内核根据系统调用号和参数选择执行相应的函数,你可以顺着fopen往下查,找到什么时候触发的软中断,软中断处理函数执行的过程,找到被调用的函数
linux内核支持的文件系统很多,并对文件操作进行了封装,比如说你使用yaffs2文件系统,你也可以直接使用yaffs2提供的函数,如果是jffs,就使用jffs的
所以有两种方法,一个是使用封装好的函数,另外一个是使用未封装过的

论坛徽章:
0
5 [报告]
发表于 2010-06-08 13:55 |只看该作者
open read write close

论坛徽章:
0
6 [报告]
发表于 2010-06-08 20:47 |只看该作者
用exec来建立

直接用终端的命令,总应该支持吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP