我正在学习c编程.我试图使自己的程序类似于ls命令,但选项较少.我正在做的是将输入目录/文件名作为参数,然后获取所有带有dirent结构的目录条目(如果它是目录).
之后我使用stat()来获取文件的所有信息,但是当我使用write()打印这些值时,这是我的问题,但是当我想用printf()打印这些时,我得到warninng:format'%ld '期望类型'long int',但参数2的类型为'__uid_t'.我不知道在%ld的地方应该使用什么,也不知道其他特殊数据类型.
Ale*_*x B 10
没有格式说明符__uid_t,因为此类型是特定于系统的,并且不是C标准的一部分,因此printf不了解它.
通常的解决方法是将其推广到适合您所定位的所有系统上的整个UID值范围的类型:
printf("%lu\n", (unsigned long int)uid); /* some systems support 32-bit UIDs */
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3149 次 |
| 最近记录: |