提问者:小点点

'FILE'是Contiki中的未知类型


我正在尝试在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

有人知道这个问题吗?


共1个答案

匿名用户

Contiki不提供/支持POSIX文件API,就像它没有许多其他东西(POSIX套接字API、POSIX进程创建和控制API)一样。相反,它提供了自己的文件系统API(“原始套接字”API、“原型线程”API等)。

有两种文件系统实现:CFS(Contiki File System)和Coffee。您可以使用Wiki页面中描述的功能;它们类似于低级POSIX文件API(例如cfs_open类似于POSIXopencfs_close到POSIXclose等等)。缓冲I/O功能没有类似物(fopenfoff)并且FILE结构不存在。