2016-02-28 123 views
3

每當我爲每個目錄運行我的程序時,即使使用ls-ls檢查每個目錄的實際大小,也會輸出8。 林試圖打印所有的目錄的用戶輸入lstat()st_blocks輸出的值不正確

#include <stdio.h> 
#include <dirent.h> 
#include <string.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
int main(int argc, char**argv) 
{ 

    struct stat path_stat; 
    int i; 
    int size=0; 
    for (i=1; i <argc; i++){ 
     if (lstat(argv[i], &path_stat)) { 
      perror(argv[i]); 
     } else { 

      if (S_ISDIR(path_stat.st_mode)){ 
      size=path_stat.st_blocks; 
      printf("%d %s \n",size,argv[i]); 
      } 

     } 
    } 
    return(0); 
} 
+1

爲什麼你認爲8的輸出是錯誤的? –

+0

我已經檢查過使用多個目錄並使用ls -ls來仔細檢查 – user1995933

+1

ls -ls不能顯示目錄的大小。它甚至沒有列出目錄,而是列出了其中的文件。 –

回答