zoukankan      html  css  js  c++  java
  • 判断文件是否为空 C++

    #include <sys/stat.h>

    int stat(const char *restrict pathname, struct stat *restrict buf);

    struct stat {

      mode_t st_mode;     /*file type & mode(permissions)*/

      ino_t st_ino;         /*i-node number(serial number)*/

      dev_t st_dev;          /*device number(file system)*/

      dev_t st_rdev;        /*device number for special files*/

      nlink_t st_nlink;    /*number of links*/

      uid_t st_uid;          /*user ID of owner*/

      gid_t st_gid;       /*group id of owner*/

      off_t st_size;         /*size in bytes, for regular files*/

      struct timespec st_atime;  /*time of last access*/

      struct timespec st_mtime; /*time of last modification*/

      struct timespec st_ctime;  /*time of last file status chage*/

      blksize_t st_blksize;         /*best I/O block size*/

      blkcnt_t st_blocks;     /*number of disk blocks allocated*/

    };

    一旦给出pathname,stat函数将返回与此命名文件有关的信息结构,根据大小信息判断文件是否为空

    系统调用stat()无需对其所操作的文件本身拥有任何权限,但针对指定pathname的父目录要有执行(搜索)权限。

    源代码如下:

    #include <iostream>
    #include <sys/stat.h>
    
    bool file_is_empty(std::string &file_path) {
        struct stat buf;
        int val = stat(file_path.c_str(), &buf);
        if(val == -1) {
            std::cerr<<"stat error.
    ";
        }
    
        size_t size=buf.st_size;
        if(size == 0)
            return true;
        else
            return false;
    }
    
    int main() {
      std::string file_path="/root/vm.data";
    
      if(file_is_empty(file_path))
        std::cout<<file_path<<" is empty
    ";
      else
        std::cout<<file_path<<" is not empty
    ";
    
      return 0;
    }   
  • 相关阅读:
    python eval()函数
    Linux利用Sysctl命令调整内核参数
    Cookie测试的测试点
    python脚本对 MySQL 数据库进行增删改查
    页面加载经历的过程【转载】
    【转载】shell基础知识
    windows下查看端口占用情况
    Python的hashlib提供了常见的摘要算法
    Python统计文件夹下各个子目录中的文件个数
    Python读取文件下的图片格式
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/9689545.html
Copyright © 2011-2022 走看看