exit의 인자로 숫자가 들어올 때 exit status를 설정해 주기 위해 롱롱 오버플로우 부분을 처리해 줘야 했다. 서로 아이디어를 내 보았다.
눈물의 쇼를 했지만 그냥 atoll하는게 더 낫고 비긴 주소 설정해 주는 귀찮은 짓을 해야 해서 fail이다. 이젠 아쉽지도 않다 ㅋ 오히려 블로그 글감 생겨서 신난다.
void remove_zero_str(char **str)// 밖에서 비긴 저장해두고 프리 해야함 누수 난다
{
int i;
int minus;
minus = 0;
if (**str == '-' || **str == '+')
{
if (**str == '-')
minus = 1;
(*str)++;
}
while (**str == '0')
(*str)++;
if (minus)
{
*str -= 1;
**str = '-'; // 이제 0 빼진 스트링 시작///// tlqkf왜안돼
}
//-000-10 이렇게됨
// 이제 digitstr인지 검사하고 오버플로우 검사
// while (*str)
// {
// if (ft_isdigit(*str) == 0)
// return (0);
// str++;
// }
// return (1);
}
int is_overflow(char *str)
{
const char *max = "9223372036854775807";
const char *sign_max = "+9223372036854775807";
const char *min = "-9223372036854775808";
if (str[0] == '-' && ft_strlen(str) >= ft_strlen(min))
return (ft_strncmp(min, str, ft_strlen(max)) < 0);
else if(str[0] == '+' && ft_strlen(str) >= ft_strlen(sign_max))
return (ft_strncmp(sign_max, str, ft_strlen(max)) < 0);
else if (ft_strlen(str) >= ft_strlen(max))
return (ft_strncmp(max, str, ft_strlen(max)) < 0);
return(0);
}
스터디 3주째인데 언제 끝나냐... 이젠 지쳤어요...
'<42seoul> > minishell' 카테고리의 다른 글
목걸이를 받지 못한 코드2 (0) | 2023.04.04 |
---|---|
<< "'hi"|hi' (2) | 2023.03.30 |
파싱이쉬워보인다고누가그랬어제가그랬어요 (2) | 2023.03.26 |