在C中创建自己的FILE*指针?

3 c filesystems pointers

我只看了一下stdio.h,在那里我可以找到FILE结构定义:

typedef struct  {
   int             level;      /* fill/empty level of buffer */
   unsigned        flags;      /* File status flags          */
   char            fd;         /* File descriptor            */
   unsigned char   hold;       /* Ungetc char if no buffer   */
   int             bsize;      /* Buffer size                */
   unsigned char   *buffer;    /* Data transfer buffer       */
   unsigned char   *curp;      /* Current active pointer     */
   unsigned        istemp;     /* Temporary file indicator   */
   short           token;      /* Used for validity checking */
} FILE; 
Run Code Online (Sandbox Code Playgroud)

现在,我想知道我是否可以创建自己(不使用fopen)一个有效的FILE指针指向一个流,然后我可以在后续的fread或fwrite调用中使用它?这更像是一个理论问题,所以请不要错过我为什么要知道这一点;)

而且,stdio没有提供删除文件的例程是否正确?在这种情况下,我需要操作系统调用,不是吗?

谢谢

Mic*_*rny 5

不,你甚至不应该尝试,因为它不便携.C99规范说你甚至不应该试图复制现有的FILE对象,因为它的地址"可能很重要".

并且stdio提供remove()了删除文件的功能.