zoukankan      html  css  js  c++  java
  • Linux下获取文件大小(程序)

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #include <error.h>
     5 #include <sys/types.h>
     6 #include <sys/stat.h>
     7 #include <unistd.h>
     8 
     9 /*
    10 Linux终端输入提示符下输入命令:man 2 stat
    11 
    12 stat, fstat, lstat - get file status
    13 
    14 有点类似于exec函数族一样的,stat函数族。
    15 
    16 int stat(const char* path, struct stat* buf);
    17 int fstat(int fd, struct stat* buf);
    18 int lstat(const char* path, struct stat* buf);
    19 
    20 struct stat {
    21     dev_t     st_dev;     // ID of device containing file
    22     ino_t     st_ino;     // inode number
    23     mode_t    st_mode;    // protection
    24     nlink_t   st_nlink;   // number of hard links
    25     uid_t     st_uid;     // user ID of owner
    26     gid_t     st_gid;     // group ID of owner
    27     dev_t     st_rdev;    // device ID (if special file)
    28     off_t     st_size;    // total size, in bytes
    29     blksize_t st_blksize; // blocksize for file system I/O
    30     blkcnt_t  st_blocks;  // number of 512B blocks allocated
    31     time_t    st_atime;   // time of last access
    32     time_t    st_mtime;   // time of last modification
    33     time_t    st_ctime;   // time of last status change
    34 };
    35 */
    36 
    37 int main(int arc, char* const argv[])
    38 {
    39     struct stat fileInfo;
    40     if (stat("main.c", &fileInfo) == 0)
    41         printf("The file size: %d byte!\n", fileInfo.st_size);
    42 
    43     return 0;
    44 }

    总结:发现这个程序去掉#include <unistd.h>,也可以在Windows下运行。

    仔细一查,Winows也有sys/types.h和sys/stat.h文件,struct stat的定义也差不多。

    额,有点惊喜,Windows也遵循POSIX标准哈!

  • 相关阅读:
    VUE的生命周期
    ID生成算法(二)
    ID生成算法(一)——雪花算法
    HTTP状态码和支持的方法
    水平居中/垂直居中/水平垂直居中总结
    判断数组类型的4种方法
    WebSocket浅谈
    vue中使用定时器时this指向
    银行转账业务梳理
    支付那些事儿
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3038277.html
Copyright © 2011-2022 走看看