2012-05-02 51 views
1

任何人都可以在此代码中找出问题。 问题是它显示所有路径名相同的输出,即使它们具有不同的内容和不同的文件。显示所有路径名相同输出的statfs

#include<stdio.h> 
#include<sys/stat.h> 
#include<unistd.h> 
#include<sys/types.h> 
#include<sys/vfs.h> 
int main(int argc,char *argv[]) 
{ 
    struct statfs sb; 
    if((statfs(argv[1],&sb))==0) 
    { 
      printf("optimal transfer blk size is %d\n",sb.f_bsize); 
      printf("total data blocks are %d\n",sb.f_blocks); 
      printf("free blocks in fs are %d\n",sb.f_bfree); 
      printf("total file nodes in fs are %d\n",sb.f_files); 
      printf("free file nodes in fs are %d\n",sb.f_ffree); 
    } 

}

[[email protected] ex4]$ ./a.out /home/testuser 
optimal transfer blk size is 4096 
total data blocks are 8819390 
free blocks in fs are 6771045 
total file nodes in fs are 2240224 
free file nodes in fs are 1927385 

[[email protected] ex4]$ ./a.out /home/testuser/harish 
optimal transfer blk size is 4096 
total data blocks are 8819390 
free blocks in fs are 6771034 
total file nodes in fs are 2240224 
free file nodes in fs are 1927386 

在此先感谢。

回答

1

statfs给出安装的信息文件系统,而不是目录。除非/home/testuser/harish是一个完全不同的文件系统(即,您已在该位置安装了分区),否则预计会得到与/home/testuser完全相同的信息并且正常。

相关问题