Chinaunix

标题: 驱动程序里面怎样创建txt文本文件? [打印本页]

作者: lixiaogang11021    时间: 2010-06-08 10:04
标题: 驱动程序里面怎样创建txt文本文件?
大方向:在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都说没有定义
请教:
怎么改正头文件,怎么改正这段小程序?谢谢
作者: OLAY玉兰油    时间: 2010-06-08 11:52
这样是行不通的吧,fopen之类的函数是系统的api函数,用户态下通过这组函数进行系统调用,在内核态完成指定操作,你本省就在内核态中,这样是行不通的。如果要创建文件可以使用文件系统的函数来实现
作者: lixiaogang11021    时间: 2010-06-08 12:28
本帖最后由 lixiaogang110217 于 2010-06-08 12:31 编辑

回复 2# OLAY玉兰油


    明白。能再说的清楚些吗“使用文件系统的函数”。我就是想知道什么函数可以替换API的fopen之类的。谢谢!
作者: OLAY玉兰油    时间: 2010-06-08 12:57
你可以先了解下系统调用过程,比如说fopen,它大致的过程是把系统调用号以及参数保存起来,再触发软终端进入内核态,内核根据系统调用号和参数选择执行相应的函数,你可以顺着fopen往下查,找到什么时候触发的软中断,软中断处理函数执行的过程,找到被调用的函数
linux内核支持的文件系统很多,并对文件操作进行了封装,比如说你使用yaffs2文件系统,你也可以直接使用yaffs2提供的函数,如果是jffs,就使用jffs的
所以有两种方法,一个是使用封装好的函数,另外一个是使用未封装过的
作者: klanet    时间: 2010-06-08 13:55
open read write close
作者: aaaaa5aa    时间: 2010-06-08 20:47
用exec来建立

直接用终端的命令,总应该支持吧




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2