ft_putchar_fd 구현

yeonjkim·2021년 5월 23일
0

42seoul-libft

목록 보기
19/43

1. ft_putchar_fd 용도

* 파라미터로 들어오는 fd와 char변수 c를 이용해 c를 출력하는 함수

2. ft_putchar_fd 프로토타입

void	ft_putchar_fd(char c, int fd)
char c : 출력할 char형 변수 c
int fd : 파일 디스크립터. 정수값으로 파일 디스크립터를 받음.

3. 파일 디스크립터란?

  • 유닉스 시스템에서 프로세스가 특정 파일에 접근하기 위한 추상적인 키.

  • 모든 프로세스(프로그램이 메모리에 적재된 것. 프로그램의 인스턴스)가 갖추어야 하는 표준 POSIX 파일 서술자는 하단과 같다.

  • file descriptor의 값은 unsigned int 값이므로 음수가 될 수 없다.

  • 다만 실제 write함수에서 테스트해본 결과 파일 디스크립터의 숫자에 상관없이 모두 출력한다. 파일 디스크립터의 정수에 따라 무엇이 달라지는지는 더욱 알아봐야 할 것 같다.

4. 구현 시 유의사항

  • 유닉스 standard header에 있는 write함수를 이용해 출력한다.

  • write함수의 인수값으로는 파일 디스크립터, 출력할 char변수의 주소값, 출력할 데이터의 바이트 사이즈가 요구된다.

  • file descriptor의 값은 내부적으로 unsigned int값을 이용하므로 음수가 되어서는 안된다. 따라서 음수일 때 return;한다.

5. 코드 구현

#include "libft.h"

void    ft_putchar_fd(char c, int fd)
{
		if (fd < 0)
        	return ;
        write(fd, &c, 1);
}

6. 코드 구현 방법

(1) 파일 디스크립터 인자가 음수인지 검사해 음수이면 return;한다.
(2) write()를 이용해 fd와 c의 주소, 출력할 값의 바이트 크기를 전달해 출력한다.

0개의 댓글