当前位置: 首页>編程日記>正文

Linux C程序实现查看文件夹大小

Linux C程序实现查看文件夹大小

问题描述 
在存储空间有限的情况下,经常要对实时判断一个存储文件夹大小,现在用linux C编写一个线程函数,该线程能够实现循环查询某个存储文件夹的大小并通过终端打印出来,能够起到实时监控的作用。

解决方法

代码如下:
代码1:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <dirent.h>
#include <pthread.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/stat.h>  
#include<stdlib.h>void* limit_the_file_down_size(void* parameter);int main()
{pthread_t pid_Limit_the_file_down_size;pthread_attr_t     attr ;pthread_attr_init(&attr);       //故障线程属性初始化
pthread_attr_setscope(&attr,PTHREAD_SCOPE_SYSTEM);                    //定义为与系统中所有线程一起竞争CPU时间
pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);        //属性设置为分离状态
pthread_create(&pid_Limit_the_file_down_size,&attr,limit_the_file_down_size,NULL);
pthread_attr_destroy(&attr);                     //销毁线程while(1){sleep(5);}return EXIT_SUCCESS;
}void* limit_the_file_down_size(void* parameter)
{   
int status;while(1){if((status=system("du -sh /home/fip/test/"))<0){printf("system error.\n");exit(0);}sleep(1);}
return NULL ;
}

编译并运行
编译并运行,观察终端打印显示文件夹大小

在监控时在目标文件夹加入文件,大小改变
在监控过程中加入文件至文件夹,终端输出打印的文件夹大小数值改变
代码2:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <dirent.h>
#include <pthread.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/stat.h>  
#include<stdlib.h>#define file_down_path "/home/fip/test/"void* limit_the_file_down_size(void* parameter);int main()
{pthread_t pid_Limit_the_file_down_size;pthread_attr_t  attr ;pthread_attr_init (&attr);              //故障线程属性初始化pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM);          //定义为与系统中所有线程一起竞争CPU时间pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); //属性设置为分离状态pthread_create(&pid_Limit_the_file_down_size,&attr,limit_the_file_down_size,NULL);pthread_attr_destroy(&attr);                                  //销毁线程while(1){sleep(5);}return EXIT_SUCCESS;
}void* limit_the_file_down_size(void* parameter)
{while(1){ struct stat statbuff;float filesize;int sum(const char *fpath, const struct stat *sb, int typeflag){ filesize+= sb->st_size; return 0; }    ftw(file_down_path, &sum, 1);filesize-=4096;减去文件夹自身大小printf("!!!!test!!!! the_size_is %.3f KB\n",filesize/1000);filesize=0;//将filesize置0,否则会累加sleep(1);}   return NULL ;

编译并运行
编译并运行,观察终端打印显示文件夹大小

在监控时在目标文件夹加入文件,大小改变
在监控过程中加入文件至文件夹,终端输出打印的文件夹大小数值改变


https://www.fengoutiyan.com/post/17525.html

相关文章:

  • c获取文件夹
  • ubuntu查看文件大小命令
  • C语言获取文件大小
  • du命令查看文件夹大小
  • Linux文件夹
  • 直接显示文件夹大小
  • 查看文件大小软件
  • centos查看文件夹大小
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機