그럴듯한 개발 블로그
반응형

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
profile

그럴듯한 개발 블로그

@donghyk2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!