LINUX -C读取磁盘和文件大小

LINUX -C读取磁盘和文件大小

code:

//获取文件大小
unsigned long get_file_size()  
{  
   int len = lseek(log_fd, 0L, SEEK_END);
   
   return len;
   
} 

//获取剩余磁盘大小
int get_system_tf_free(double *size)
{
	if(size== NULL)
			return -1;
	struct statfs diskInfo;
	statfs("/home/data",&diskInfo); //磁盘(我这里是U盘)地址
	unsigned long long totalBlocks = diskInfo.f_bsize;
	unsigned long long disk = diskInfo.f_bfree*totalBlocks;
 
	*size= disk;
	return 0;
}
	
void check_disk()
{
	
	char buf[1024]={0};
	static int i=0;
	
	double temp;
	
	
	//sem_status.led_status = 3;
	if(i++  > 100)
	{
		
		//检查磁盘总量
		get_system_tf_free(&temp);
	
		if(temp <= 20*1024*1024) //如果小于20M,就认为没空间了
		{
			sem_status.uart_mode  = 2;
			sem_status.led_status = 3;
		}
		
		i = 0;
	   printf("size:%f\r\n",temp);
	   
	   
	   //检查log文件
	   int size_log = get_file_size();
	   if(size_log >= 10*1024*1024) //如果文件大于10M
	   {
		  printf("clear log file\r\n");   
		  int res =  ftruncate(log_fd,0);
		  if(res != -1)
		  {
			   printf("clear ok\r\n");
		  }
		  
		  //重新设置偏移量
		  lseek(log_fd,0,SEEK_SET);
	   }
			
		
	}
	
	
	

	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农-老七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值