Exemple #1
0
t_list			*get_link(char *d_name, struct stat *f_stat, char *path)
{
	t_ls			content;
	t_list			*lst;

	if (!f_stat || !d_name)
		return (NULL);
	errno = 0;
	content.nb_hlink = (int)(f_stat->st_nlink);
	content.size = (int)(f_stat->st_size);
	content.nb_blk = (int)(f_stat->st_blocks);
	time_asm(f_stat, &content);
	if (!(content.name = ft_strdup(d_name))
		|| !(content.u_name = get_uname(f_stat->st_uid))
		|| !(content.g_name = get_gname(f_stat->st_gid))
		|| !(content.rights = get_rights(f_stat, path))
		|| !(content.type = get_type(f_stat)))
		return (NULL);
	content.link = f_readlink(content, path);
	if (!(lst = ft_lstnew(&content, sizeof(content))))
	{
		free_content(&content, content.size);
		return (NULL);
	}
	return (lst);
}
bool TestExtFile::test_readlink() {
  if (f_file_exists("test/test_ext_file2.tmp")) {
    f_unlink("test/test_ext_file2.tmp");
    VERIFY(!f_file_exists("test/test_ext_file2.tmp"));
  }
  f_touch("test/test_ext_file.tmp");
  f_symlink("test/test_ext_file.tmp", "test/test_ext_file2.tmp");
  String resolved = f_readlink("test/test_ext_file2.tmp");
  VS(resolved.substr(resolved.size() - 22), "test/test_ext_file.tmp");
  return Count(true);
}