【问题标题】:Function that display a file type显示文件类型的函数
【发布时间】:2013-12-01 02:50:15
【问题描述】:

我想编写unix系统ls

但是我是一个新手,当我想要获取类型时遇到了问题...... 我的程序显示随机类型值。 我必须向我的函数发送什么参数?

哦,我不想使用任何全局值

这是我的功能:

void    my_get_type(const mode, struct direct *d)
{
  if (S_ISREG(mode))
    my_printf("-");
  if (S_ISDIR(mode))
    my_printf("d");
}

我要发送的论点是我的主要内容:

int     main(int argc, char **argv)
{
  DIR           *dir;
  struct direct *d;
  struct stat   buffer;
  char          *directory;
  int           j;
  int           i;

  j = 0;
  i = 0;
  dir = opendir(".");
  if (dir == NULL)
    {
      my_printf("no directory");
      return (0);
    }
  while (argv[i])
    {
      if (argv[i][j] == '-')
        {
          ++j;
          if (argv[i][j] == 'l')
            {
              while (d = readdir(dir))
                {
                  my_get_type(buffer.st_mode, d);
                  //my_get_droits();                                            
                  //my_get_size();                                              
                  //user soon                                            
                  //4096 ?                                                      
                  //my_get_time();                                              
                  my_printf("%s\n", d->d_name);
                }
            }
        }
      else
        ++i;
    }
  while (d = readdir(dir))
    my_printf("%s ", d->d_name);
  closedir(dir);
}

如果您对像我这样的初学者有任何其他建议......那会让我很高兴^^

【问题讨论】:

  • 对文件调用stat()从struct stat中获取文件模式。

标签: c unix ls


【解决方案1】:
my_get_type(buffer.st_mode, d);

buffer 在此处未初始化。

【讨论】:

    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多