我刚刚查看了 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;
现在,我想知道我是否可以为自己创建(不使用 fopen)一个有效的 FILE 指针 到我可以在随后的 fread 或 fwrite 调用中使用的流?这是 更多的是一个理论问题,所以请不要奇怪我为什么想知道那个;)
此外,stdio 不提供删除文件的例程是否正确?在 这种情况下我需要操作系统调用,不是吗?
谢谢
最佳答案
不,您甚至不应该尝试这样做,因为它不可移植。 C99 规范说您甚至不应该尝试复制现有的 FILE
对象,因为它的地址“可能很重要”。
stdio 提供了remove()
函数来删除一个文件。
关于在 C 中创建自己的 FILE* 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1372472/