如何打印出ubuntu中的"st_blksize"条数据?
How to print out "st_blksize" of data in ubuntu?
#include <stdio.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char*argv[])
{
struct stat file;
int n;
if (argc != 2)
{
printf("Usage: ./a.out <filename>\n");
exit(-1);
}
if ((n = stat(argv[1], &file)) == -1)
{
perror(argv[1]);
exit(-1);
}
printf("Block size : %d\n", file.st_blksize);
}
最后一行报错
格式“%d”需要类型为“int”的参数,但参数 2 的类型为“__blksize_t”[-Wformat=]
如何打印出"st_blksize"的数据??
实际上,st_blksize
是一个 unsigned long
typedef 数据类型,因此使用
printf("Block size : %ld\n", file_st.blksize);
#include <stdio.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char*argv[])
{
struct stat file;
int n;
if (argc != 2)
{
printf("Usage: ./a.out <filename>\n");
exit(-1);
}
if ((n = stat(argv[1], &file)) == -1)
{
perror(argv[1]);
exit(-1);
}
printf("Block size : %d\n", file.st_blksize);
}
最后一行报错
格式“%d”需要类型为“int”的参数,但参数 2 的类型为“__blksize_t”[-Wformat=]
如何打印出"st_blksize"的数据??
实际上,st_blksize
是一个 unsigned long
typedef 数据类型,因此使用
printf("Block size : %ld\n", file_st.blksize);