main에서의 인자가 valid한지와 이 인자가 .ber 확장자로 끝났는지 검사.
valid하면 open으로 파일 open하기.
파일명이 존재하지 않으면 에러처리.
이전에 구현한 get_next_line으로 한 문장씩 받아오고, 이 문장에 ‘\n’삽입해서 합치기 - split으로 변환할 것이라 문장 구분자가 있어야 함.
4번을 eof까지 반복하기.
split으로 나눈 이차원 배열을 map에 넣기.
void map_parsing(int fd, char ***map)//이차원배열의 주소 전달
{
char *line;//get_next_line으로 받아오는 문자열
char *split;//나중에 split할 최종 문자열
char *new;//temp변수
int gnl;
gnl = get_next_line(fd, &line);
split = ft_strdup("\\0");
while (gnl != -1)//gnl에러 나지 않을 때까지. gnl에러나면 예외처리 해야 함.
{
new = ft_strjoin(line, "\\n\\0");
free(line);
line = new;
new = ft_strjoin(split, line);
free(split);
split = new;
free(line);
if (gnl == 0)
break;
gnl = get_next_line(fd, &line);
}
if (gnl == -1)
so_long_error(3);
(*map) = ft_split(split, '\\n');//split으로 자르게
free(split);
}