我正在尝试在Contiki中测试文件中的写入。这是我使用的代码:
#include "contiki.h"
#include <stdio.h>
#define LEN 256
PROCESS(test_process, "Coffee test process");
AUTOSTART_PROCESSES(&test_process);
PROCESS_THREAD(test_process, ev, data)
/**/
{
PROCESS_BEGIN();
FILE * fp;
int i;
/* open the file for writing*/
fp = fopen ("/home/user/contiki/examples/mySim/1.txt","w");
/* write 10 lines of text into the file stream*/
for(i = 0; i < 10;i++){
fprintf (fp, "This is line %d\n",i + 1);
}
/* close the file*/
fclose (fp);
PROCESS_END();
}
我在Cooja模拟器中编译后收到此错误消息:
test. c:在函数'process_thread_test_process'中:test.c:12:1:错误:未知类型名称'FILE'test.c:15:4:警告:函数'fopen'的隐式声明[-Wimplbitt-Function-声明]test.c:15:7:警告:赋值使指针从整数中没有强制转换[默认启用]test.c:19:8:警告:函数'fprintf'的隐式声明[-Wimplbitt-Function-声明]test.c:19:8:警告:不兼容的内置函数'fprintf'隐式声明[默认启用]test.c:23:4:警告:函数'fover'的隐式声明[-Wimplbitt-Function-声明]使: *** [test.co]错误1进程返回错误代码2
有人知道这个问题吗?
Contiki不提供/支持POSIX文件API,就像它没有许多其他东西(POSIX套接字API、POSIX进程创建和控制API)一样。相反,它提供了自己的文件系统API(“原始套接字”API、“原型线程”API等)。
有两种文件系统实现:CFS(Contiki File System)和Coffee。您可以使用Wiki页面中描述的功能;它们类似于低级POSIX文件API(例如cfs_open
类似于POSIXopen
、cfs_close
到POSIXclose
等等)。缓冲I/O功能没有类似物(fopen
、foff
)并且FILE
结构不存在。