我想编写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);
}
如果你有像我这样的初学者的任何其他提示......那会让我开心^^
答案 0 :(得分:2)
my_get_type(buffer.st_mode, d);
buffer
在这里未初始化。