当前位置: 技术问答>linux和unix
求教:struct dirent结构中用于存放文件名的d_name,它的长度究竟是1还是255?
来源: 互联网 发布时间:2015-12-27
本文导语: struct dirent结构中用于存放文件名的d_name,有的系统定义为 char[1],有的系统定义为char[255]。 如果是定义为255,每次分255个字节太浪费了,这里边有什么玄机? 请高手解答。 谢谢:P | 定义: char d_na...
struct dirent结构中用于存放文件名的d_name,有的系统定义为 char[1],有的系统定义为char[255]。
如果是定义为255,每次分255个字节太浪费了,这里边有什么玄机?
请高手解答。 谢谢:P
如果是定义为255,每次分255个字节太浪费了,这里边有什么玄机?
请高手解答。 谢谢:P
|
定义: char d_name [NAME_MAX+1];
为什么是定义为1 呢?在scandir函数里,它不是得到传入路径的文件的名字么?
这个应该不会有定义为1的吧,应该看NAME_MAX的最大设置
如果真的设置成1的话,就没有意义了吧
我好象没见过定义为1的,呵呵
为什么是定义为1 呢?在scandir函数里,它不是得到传入路径的文件的名字么?
这个应该不会有定义为1的吧,应该看NAME_MAX的最大设置
如果真的设置成1的话,就没有意义了吧
我好象没见过定义为1的,呵呵
|
我现在的开发中也涉及到了这个结构体。系统结构是这样定义的:
struct dirent {
long d_ino;
__kernel_off_t d_off;
unsigned short d_reclen;
char d_name[256]; /* We must not include limits.h! */
};
struct dirent {
long d_ino;
__kernel_off_t d_off;
unsigned short d_reclen;
char d_name[256]; /* We must not include limits.h! */
};