zhang5055258 发表于 2017-8-17 21:13:59

Fatfs文件系统问题,文件系统函数f_open能打开文件,stdio库...

如题:Fatfs文件系统问题,文件系统函数f_open能打开文件,stdio库的fopen函数不能打开
移植了一个Fatfs文件系统,里面的文件使用fatfs文件系统的读写函数f_open能打开文件,但使用C语言的stdio库里面的fopen函数不能打开文件,并且errno也为0,求解惑啊

moyanming2013 发表于 2017-8-17 21:14:00

fatfs不支持c-lib里面的文件系统API。

@乔木 发表于 2017-8-18 13:15:34

;P要是C标准库里的文件系统API能直接用在MCU上,你还费啥劲去移植文件系统啊

zhang5055258 发表于 2017-8-18 16:23:49

moyanming2013 发表于 2017-8-18 11:28
fatfs不支持c-lib里面的文件系统API。

C的库的API能不能定义让他兼容啊

zhang5055258 发表于 2017-8-18 17:47:16

@乔木 发表于 2017-8-18 13:15
要是C标准库里的文件系统API能直接用在MCU上,你还费啥劲去移植文件系统啊 ...

现在的问题是文件系统能打开,C库函数打不开,库函数需要对定义硬件操作接口吗

@乔木 发表于 2017-8-21 22:33:27

zhang5055258 发表于 2017-8-18 17:47
现在的问题是文件系统能打开,C库函数打不开,库函数需要对定义硬件操作接口吗 ...

你在电脑上用printf的时候只需要加一个stdio.h的头文件,你在单片机上如果还要用printf,你只加一个stdio.h的头文件能有用吗?一样的,你要用C函数库里的API,你不改里面代码,能有用吗??而且,你的C库面向的是个人电脑,它的文件系统很可能是适应个人电脑的文件系统,你用在单片机上,能有用吗??

ts2000 发表于 2017-8-22 08:56:49

要对应硬件匹配的。返回值没错,并不代表是正确打开了。

zhang5055258 发表于 2017-8-22 11:01:43

@乔木 发表于 2017-8-21 22:33
你在电脑上用printf的时候只需要加一个stdio.h的头文件,你在单片机上如果还要用printf,你只加一个stdio ...

printf可以使用重定向,将传递进来的参数引导自己想要的地方就行,比如串口,fopen还会反悔一个FILE机构体,就不知道怎么去重定向了

@乔木 发表于 2017-8-22 11:10:15

zhang5055258 发表于 2017-8-22 11:01
printf可以使用重定向,将传递进来的参数引导自己想要的地方就行,比如串口,fopen还会反悔一个FILE机构 ...

:L哥我帮不了了
页: [1]
查看完整版本: Fatfs文件系统问题,文件系统函数f_open能打开文件,stdio库...