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;
    }   
  • 相关阅读:
    查看用户密码
    OPM批次成本后台表
    查询物料事务处理历史记录脚本
    接收会计事件表和接收会计分录表
    为应付发票批添加ORG_ID
    项目环境配置剩余部分
    配置IDEA的基本设置操作
    NB: JAVA_HOME should point to a JDK not a JRE
    Windows10下的JAVA运行环境搭建 ——第一天
    python中的可变与不可变对象的区别
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/9689545.html
Copyright © 2011-2022 走看看