私はls関数を一からコード化しようとしています。これを行うために、私は各ファイル/構造の情報を含む構造体のリンクリストを作成しました。ここでstat構造体の値に構造体が含まれていません
は構造体である:
typedef struct s_ls
{
char *name;
struct stat stat;
struct s_ls *next;
} t_ls;
私は、リンクされたリストを作成しました:ft_add_elem機能は、新しい構造をmallocをalphabticalために新しい要素を追加し、ポインタを返す
t_ls *ft_store(char *foldername)
{
t_ls *stock = NULL;
DIR *dir;
struct dirent *dent;
dir = opendir(foldername);
if(dir != NULL)
{
while((dent = readdir(dir)) != NULL)
{
stock = ft_add_elem(dent->d_name, stock);
stat(stock->name, &(stock->stat));
}
}
return (stock);
}
を
t_ls *ft_new_elem(char *name)
{
t_ls *tmp;
if (!(tmp = malloc(sizeof(t_ls))))
exit(1);
tmp->name = ft_strdup(name);
return (tmp);
}
t_ls *ft_add_elem(char *name, t_ls *stock)
{
t_ls *new;
t_ls *check;
new = ft_new_elem(name);
if (!stock)
return (new);
check = stock;
while (check && check->next && ft_strcmp(check->next->name, new->name) < 0)
check = check->next;
new->next = check->next;
check->next = new;
return (stock);
}
私の問題は次のとおりです。 hen私は、最初のものを除いて、すべてのstat構造体が空であるために、-lオプションがトリガされたときにそれらを出力する要素を調べます。しかし、それらをいっぱいにする同じ関数(ft_store)からそれらを出力すると、これは当てはまりません。
こと。それはあなたのコードを読みにくいものにします! – John3136
'在庫 - >次は' unitializedです – ensc