main의 인자가 valid하지 않은 경우는 총 3가지가 존재한다.
argc ≠ 2일 때
if (argc != 2)
{
return (FALSE);
}
argv[1]의 값이 .ber 확장자가 아닐 때
argv[1]의 값은 맵이 들어 있는 .ber확장자 파일의 주소이다. 따라서 argv[1]은 .ber로 끝나야 한다.
int ft_strcmp(const char *s1, const char *s2)
{
int index;
unsigned char *cp1;
unsigned char *cp2;
cp1 = (unsigned char*)s1;
cp2 = (unsigned char*)s2;
index = 0;
while (cp1[index] != '\\0')
{
if (cp1[index] != cp2[index])
{
return (cp1[index] - cp2[index]);
}
index++;
}
if (cp1[index] == '\\0')
{
return (cp1[index] - cp2[index]);
}
return (0);
}
...
//argv[1]의 마지막에서 4번째 인덱스의 주소값과 ".ber"의 문자열을 비교
if (ft_strcmp(&argv[1][ft_strlen(argv[1]) - 4], ".ber") != 0)
{
return (FALSE);//argv[1]이 .ber로 끝나지 않으면 FALSE 반환
}
argv[1]으로 받은 파일이 존재하지 않는 파일일 때
if (fd < 0)//파일 찾지 못함
so_long_error(2);