小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

linux下C編程

 SamBookshelf 2013-10-10

前兩天工作有需求,需要查詢一個路徑的總空間大小和可用空間大小,結(jié)果就查到了這個函數(shù),測試程序如下:

test.c

  1. #include <sys/statfs.h>   
  2. #include <stdio.h>   
  3.   
  4. int main()  
  5. {  
  6.     struct statfs diskInfo;  
  7.       
  8.     statfs("/home/carl/", &diskInfo);  
  9.     unsigned long long blocksize = diskInfo.f_bsize;    //每個block里包含的字節(jié)數(shù)   
  10.     unsigned long long totalsize = blocksize * diskInfo.f_blocks;   //總的字節(jié)數(shù),f_blocks為block的數(shù)目   
  11.     printf("Total_size = %llu B = %llu KB = %llu MB = %llu GB\n",   
  12.         totalsize, totalsize>>10, totalsize>>20, totalsize>>30);  
  13.       
  14.     unsigned long long freeDisk = diskInfo.f_bfree * blocksize; //剩余空間的大小   
  15.     unsigned long long availableDisk = diskInfo.f_bavail * blocksize;   //可用空間大小   
  16.     printf("Disk_free = %llu MB = %llu GB\nDisk_available = %llu MB = %llu GB\n",   
  17.         freeDisk>>20, freeDisk>>30, availableDisk>>20, availableDisk>>30);  
  18.       
  19.     return 0;  
  20. }  


編譯過程,運行結(jié)果,與df命令對比結(jié)果如下:

  1. carl@carl-VirtualBox:~/share$ gcc test.c -o test_statfs  
  2. carl@carl-VirtualBox:~/share$ ./test_statfs   
  3. Total_size = 20332810240 B = 19856260 KB = 19390 MB = 18 GB  
  4. Disk_free = 15492 MB = 15 GB  
  5. Disk_available = 14519 MB = 14 GB  
  6. carl@carl-VirtualBox:~/share$ df /home/carl -h  
  7. Filesystem      Size  Used Avail Use% Mounted on  
  8. /dev/sda1        19G  3.9G   15G  22% /  
  9. carl@carl-VirtualBox:~/share$  

好像有點誤差。


水平有限,如果有朋友發(fā)現(xiàn)錯誤,歡迎留言交流。
轉(zhuǎn)載請保留本文鏈接,如果覺得我的文章能幫到您,請頂一下。,謝謝。




    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多