任何人都知道ino_t类型的占位符是什么? 我正在尝试使用printf打印出来并尝试过%d,%i,%s和其他但不能正常工作。
printf( " file name = %s, i-node number=**%d**\n", direntp->d_name, direntp->d_ino);
warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘__ino_t’ [-Wformat]
请假设我的其他代码是正确的。 大多数示例仅显示如何打印名称,但不显示inode编号。 我也搜过很多地方。
提前致谢
答案 0 :(得分:8)
如果您知道该类型是完整的,则可以将其转换为unsigned long long
,然后使用%llu
。
printf( " file name = %s, i-node number=%llu\n",
direntp->d_name, (unsigned long long)direntp->d_ino);
答案 1 :(得分:7)
记录:这些被称为“转换说明符”。
据我所知,ino_t
没有转换说明符。如果您确定它是整数,则将其转换为unsigned long long
并使用"%llu"
。
答案 2 :(得分:-1)
ino_t是无符号long的typedef。 所以打印相同的限定符是%lu。