问题描述 
在存储空间有限的情况下,经常要对实时判断一个存储文件夹大小,现在用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 ;


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


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

Linux C程序实现查看文件夹大小相关推荐

  1. Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限

    一台老的PHP后台服务器,今天用 free -m 查看,发现内存跑满了. 再 top,然后按下shift+m,也就是按内存占用百分比排序,发现排在第一的进程,才占用0.9%,那是什么占用的呢?谷歌了一 ...

  2. linux按照目录大小降序排列,Linux du命令查看文件夹大小并按降序排列

    1. df -lh 2. du -s /usr/* | sort -rn 这是按字节排序 3. du -sh /usr/* | sort -rn 这是按兆(M)来排序 4.选出排在前面的10个 du ...

  3. linux du命令 前多少个,Linux du命令查看文件夹大小并按降序排列

    1. df -lh 2. du -s /usr/* | sort -rn 这是按字节排序 3. du -sh /usr/* | sort -rn 这是按兆(M)来排序 4.选出排在前面的10个 du ...

  4. linux 查看目录下文件、查看文件具体内容、查看文件夹大小

    linux 查看目录下文件.查看文件具体内容 查看目录下文件 查看文件具体内容 查看文件夹大小 查看文件夹下各文件大小 查看目录下文件 ls 查看目录下所有文件(不包含隐藏文件) ls -a 查看目录 ...

  5. Linux:df查看磁盘大小、du查看文件夹大小

    df查看磁盘大小 # df -h文件系统 容量 已用 可用 已用% 挂载点 /dev/vda1 40G 38G 0 100% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs ...

  6. Linux查看文件夹大小和文件大小的几种方法

    文章目录 查看文件夹大小 du命令(推荐使用) ls命令 查看文件大小 du命令(推荐使用) ls命令 stat命令 wc命令 总结 查看文件夹大小 du命令(推荐使用) Summarize disk ...

  7. linux之如何快速查看文件的大小

    1.linux之如何快速查看文件的大小 命令如下,每次都容易忘记,希望下次记住 du -h

  8. TreeSize Free 查看文件夹大小 v2.3.3 汉化版

    软件名称: 查看文件夹大小 TreeSize Free 汉化版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win8 / Win7 / Vista / WinXP 软件大小: 1.1MB ...

  9. 系统运维系列 之在Windows下可以查看文件夹大小的工具TreeSize Free

    给大家推荐一个在Windows下可以查看文件夹大小的工具TreeSize Free. 下载链接: https://customers.jam-software.de/downloadTrial.php ...

  10. 查看文件夹大小容量size工具treesizeportable

    查看文件夹大小容量size工具treesizeportable https://www.newasp.net/soft/327351.html 

最新文章

  1. OpenCV3.3中主成分分析(Principal Components Analysis, PCA)接口简介及使用
  2. 计算一下你的“手指率”
  3. 揭秘PHP深受Web开发者喜爱的原因
  4. Android开发中的小技巧
  5. 基于c语言开发老人防摔系统,家有老人,做好防摔排查
  6. jsp mysql 注入攻击实例
  7. C语言求数组中的最大值
  8. 【定时任务】Quartz用法详解
  9. 实锤!Python 真没你想的那么简单…
  10. 【Java_Spring】控制反转IOC(Inversion of Control)
  11. Docker run centos 内部使用systemctl 启动服务的方法
  12. org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.itheima.
  13. 网站后台测试软件,WebCrack:网站后台弱口令批量检测工具
  14. 开拓者队医当选年度最佳 球迷:罗伊情何以堪
  15. 浦发银行面试笔试经历
  16. 安防经济逐渐景气下行 安企是否能排除万难冲出阴霾?
  17. memcacheredis构建缓存服务器
  18. Android Studio 中的 gradle 介绍及build.gradle配置文件详解
  19. 【应用实例】单片机PM2.5空气监测仪--攀藤G5激光PM2.5传感器
  20. IIR滤波器极点分析--关于稳定度

热门文章

  1. 产品经理的进阶——需求的成长史
  2. linux ssh密钥验证失败,连接Linux的服务器时使用SSH密钥认证及解决自动断连问题...
  3. 高效科研神器——文献阅读篇
  4. 绕过查杀工具实现lsass转储
  5. Spark 已死,Storm 已凉,Flink 永远滴神!
  6. 如何识别服务器网站有病毒,网站有病毒怎么解决?
  7. 不要等到双十一,MathType公式编辑器提前降价!
  8. Java界面开发(以五子棋为例)
  9. 我的世界服务器标记家位置,我的世界:你真的会看藏宝图吗?学会用标记,位置一次就找对...
  10. MTK76X8最新Openwrt固件下载