“ FILE”是Contiki中的未知类型

时间:2018-12-29 18:49:51

标签: c embedded stdio 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”的隐式声明[-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

有人对这个问题有任何想法吗?

1 个答案:

答案 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 opencfs_close与POSIX close类似,依此类推)。没有用于缓冲I / O功能的类似物(fopenfclose),并且FILE结构不存在。