文件指针和文件描述符号还有文件句柄有什么区别,为什么文件句柄是int型有的时候

        //比如平时FILE *f这是一个文件指针,使用一次open就变成文件句柄了么,

fopen和open是两个不同的函数啊,前者带缓冲,后者不带缓冲;前者返回的是FILE的指针,就是指向一个结构体的指针,后者返回描述符,只是个数字。

没有加大括号,层次不明

第一代码太乱不如直接截图放上来清爽,第二什么错误?来个错误信息!

我只想知道,你代码中的#include 后面不加东西吗?
虽然,你代码中的头文件所放的地方也行,建议#include和代码独立开来。

#ifdef _LINUX
#include <标准头文件>
#elif WIN32
#include <标准头文件>
#endif

static int fclear(FILE *f){
#ifdef _LINUX
ftruncate(fileno(f),0);
fseek(f, 0, SEEK_SET);
#elif WIN32
chsize(f,0);
fseek(f, 0, SEEK_SET);
#endif
return 0;
}

#include 一般出现在头文件(.h)和源文件(.c)的头部
出现在22行、27行不是不可以,如同楼上所说,include后边肯定是少了东西的

把错误信息发上来,很可能是头文件里没有定义或者缺少头文件。