当前位置:  技术问答>linux和unix

一道习题的,关于struct dirent中d_name的问题

    来源: 互联网  发布时间:2016-03-20

    本文导语:  看了一道习题,不知道为什么如此?  在struct dirent 中,数组d_name[]的长度在有的系统是1,有的系统是255,实际长度是多少?为什么会有这些不同?为什么不定义成char *? 附: struct dirent{   ino_t d_ino;   off_t d_off; ...

看了一道习题,不知道为什么如此?
 在struct dirent 中,数组d_name[]的长度在有的系统是1,有的系统是255,实际长度是多少?为什么会有这些不同?为什么不定义成char *?
附:
struct dirent{
  ino_t d_ino;
  off_t d_off;
  unsigned short  d_reclen;
  char  d_name[1];
}

|
为了减少空间的使用
下边这个地方有你需要的答案
http://blog.csdn.net/zhy10/archive/2008/01/25/2065278.aspx

|
在 Linux 里可以动态指定数组的大小。
这样比较方便,不用 char * 的原因我想的是这样的:

如果使用 char *d_name 那在用的时候可能就是
d_name = (char *)malloc(size);
memset(d_name, 0, size);
就是要手工调用 malloc 等内存函数,比用数组表示方式要繁琐一点。

|
一般在一些嵌入式系统中会这样用,可以想象一下,如果定义成255,那就是不管文件名到底有多长,都会占用这么多空间的,那会照成很大的空间浪费的。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一道送分的问题
  • 一道考验基础的JAVA语法题
  • 问个AIX题库的一道题,感觉答案应该是A啊
  • 关于构造函数的一道题
  • 初中计算机老师给我们出过一道题,那时候印象很深
  • 一道基础英语填空题(Java)
  • 问一道SCJP的题目
  • SCJP 模拟题一道
  • scjp考题一道
  • scjp考题一道!!!!!!!!
  • 一道SCJP的题
  • 一道SCJP题有请各大虾指教.
  • 一道题,select what & why?
  • 一道关于操作系统的题
  • 问一道算法题
  • 一道小程序有问题?请教!
  • 一道scjp的题目
  • 一道scjp模拟题,请赐教。
  • 关于操作系统的一道题目(关于临时文件)
  • 这是南京大学的一道操作系统考研题....


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3