我正在尝试在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”的隐式声明[-Wimplicit-function-declaration] test.c:15:7:警告:赋值使指针从整数开始而没有强制转换[默认启用] test.c:19:8:警告:函数'fprintf'的隐式声明[-Wimplicit-function-declaration] test.c:19:8:警告:内置函数“ fprintf”的隐式声明不兼容[默认启用] test.c:23:4:警告:函数“ fclose”的隐式声明[-Wimplicit-function-declaration] make:*** [test.co]错误1 处理返回的错误代码2
有人对这个问题有任何想法吗?
答案 0 :(得分:3)
Contiki不提供/不支持POSIX文件API,就像没有很多其他东西(POSIX套接字API,POSIX进程创建和控制API)一样。相反,它提供了自己的文件系统API(“ protosockets” API,“ protothreads” API等)。
有two filesystem implementations:CFS(Contiki文件系统)和Coffee。您可以使用Wiki页面中描述的功能。它们类似于低级POSIX文件API(例如,cfs_open
与POSIX open
,cfs_close
与POSIX close
类似,依此类推)。没有用于缓冲I / O功能的类似物(fopen
,fclose
),并且FILE
结构不存在。