打印各种文件信息

时间:2019-09-11 04:49:29

标签: c

文件对象有各种打印格式程序吗?例如:

// pass the filepath
char * filepath = argv[1];
FILE * file = fopen(filepath, "r");
printf("Filepath: %s\n", file.size);

main4.c:416:32: error: no member named 'size' in 'struct __sFILE'

可以从结构中打印哪些项目?

2 个答案:

答案 0 :(得分:3)

要获取各种信息,可以使用statlstat来填充struct stat

           struct stat {
               dev_t     st_dev;     /* ID of device containing file */
               ino_t     st_ino;     /* inode number */
               mode_t    st_mode;    /* protection */
               nlink_t   st_nlink;   /* number of hard links */
               uid_t     st_uid;     /* user ID of owner */
               gid_t     st_gid;     /* group ID of owner */
               dev_t     st_rdev;    /* device ID (if special file) */
               off_t     st_size;    /* total size, in bytes */
               blksize_t st_blksize; /* blocksize for file system I/O */
               blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
               time_t    st_atime;   /* time of last access */
               time_t    st_mtime;   /* time of last modification */
               time_t    st_ctime;   /* time of last status change */
           };

man page

man page + example

答案 1 :(得分:0)

想要使用stat()的声音:

http://man7.org/linux/man-pages/man2/stat.2.html

或者如果您要定位窗口,则总是有Win32函数,例如GetFileSize。