열렬히.뛰기

util1

école 42 > ft_printf > util1

개요

  • apply_null : ft_putstr로 NULL이 들어올 때 처리
    • *str == NULL일 때 이 함수로 넘어오게 처리하는 것이 아니다.
    • 이 의미는 할당 값이 공백이라는 뜻.
    • 따라서, str == NULL일 때 로 조건을 처리해야 한다.
  • ft_putchar : 문자(%c) 처리
  • ft_putstr : 문자열 (%s) 처리

코드

c
#include "ft_printf.h"

static void	apply_null(int *cnt)
{
	ssize_t	a;

	a = write(1, "(null)", 6);
	if (a == -1)
	{
		(*cnt) = -1;
		return ;
	}
	(*cnt) += 6;
}

void	ft_putchar(char c, int *cnt)
{
	ssize_t	a;

	a = write(1, &c, 1);
	if (a == -1)
	{
		(*cnt) = -1;
		return ;
	}
	(*cnt)++;
}

void	ft_putstr(char *str, int *cnt)
{
	int		n;
	ssize_t	a;

	n = 0;
	if (str == 0)
		apply_null(cnt);
	else
	{
		while (str[n] != '\0')
		{
			a = write(1, &str[n++], 1);
			if (a == -1)
			{
				(*cnt) = -1;
				return ;
			}
			(*cnt)++;
		}
	}
}