我有一个FILE *,通过电话回来fopen().我需要从中获取文件描述符,以便进行调用fsync(fd).从文件指针获取文件描述符的功能是什么?
(注意:这不是如何冲洗的问题write().这是它的另一端,可以这么说.)
是否可以清空包含要在其中读取数据的文件描述符而不必使用read()它?您可能对数据不感兴趣,因此读取它们会浪费您可能更好地使用的空间和周期.
如果在POSIX中不可能,那么任何操作系统都有任何不可移植的方法吗?
更新:请注意,我在谈论文件描述符,而不是流.
我正在运行一个小型的c程序:
#include<stdio.h>
int main()
{
char *p;
p = (char *)malloc(10);
free(p);
free(p);
free(p);
printf("\npointer is freed!!\n");
}
Run Code Online (Sandbox Code Playgroud)
基本上我释放已经被释放的记忆.我认为应该导致核心转储!!是不是这样?
但它正在印刷
pointer is freed!!
Run Code Online (Sandbox Code Playgroud)
我错了一些在哪里?