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;
    }   
  • 相关阅读:
    多属性量化决策模型
    对称加密与非对称加密
    子网掩码
    网络安全
    万维网WWW、电子邮件email与文件传输FTP
    DHCP协议
    DNS协议
    ARP协议与RARP协议
    springboot WebSocket的使用
    Java调用Python的两种方式
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/9689545.html
Copyright © 2011-2022 走看看