当前位置: 技术问答>linux和unix
调用fstat获得文件属性
来源: 互联网 发布时间:2016-08-30
本文导语: struct stat buf; 我用fopen在/home下创建一个文件,属性为“w+”,然后通过fwrite写一些数据到这个文件里面,然后调用fstat想获取这个文件的属性,但是我发现,调用fstat是成功的,但是buf.st_size和buf.st_blocks都是0,很奇怪!...
struct stat buf;
我用fopen在/home下创建一个文件,属性为“w+”,然后通过fwrite写一些数据到这个文件里面,然后调用fstat想获取这个文件的属性,但是我发现,调用fstat是成功的,但是buf.st_size和buf.st_blocks都是0,很奇怪!!!!
请问是哪里有错误,请高手指教,谢谢!
我用fopen在/home下创建一个文件,属性为“w+”,然后通过fwrite写一些数据到这个文件里面,然后调用fstat想获取这个文件的属性,但是我发现,调用fstat是成功的,但是buf.st_size和buf.st_blocks都是0,很奇怪!!!!
请问是哪里有错误,请高手指教,谢谢!
|
这不应该算是一个错误吧,算是Linux的一种内部机制吧!等待高手解答
|
楼主有没有在fwrite后fstat之前调用fclose?
|
以“w+”打开文件时,文件被清空(就是大小被截断为0)。在fwrite之后,其实数据时写到buffer里的,并没有写到物理文件里。可以在fwrite后调用fflush(FILE *),再调用fstat就可以了
|
windows不熟,请楼主解释一下!