* 파라미터로 들어오는 fd와 char *변수 s를 이용해 s 문자열을 모두 출력하는 함수
void ft_putstr_fd(char *s, int fd)
char *s : 출력할 char 포인터 변수 s. s 문자열.
int fd : 파일 디스크립터. 정수값으로 파일 디스크립터를 받음.
유닉스 시스템에서 프로세스가 특정 파일에 접근하기 위한 추상적인 키.
모든 프로세스(프로그램이 메모리에 적재된 것. 프로그램의 인스턴스)가 갖추어야 하는 표준 POSIX 파일 서술자는 하단과 같다.
file descriptor의 값은 unsigned int 값이므로 음수가 될 수 없다.
다만 실제 write함수에서 테스트해본 결과 파일 디스크립터의 숫자에 상관없이 모두 출력한다. 파일 디스크립터의 정수에 따라 무엇이 달라지는지는 더욱 알아봐야 할 것 같다.
이전에 구현한 ft_putchar_fd()를 이용해 구현한다. ft_putchar_fd()는 이전의 포스트를 참고하자.
file descriptor의 값은 내부적으로 unsigned int값을 이용하므로 음수가 되어서는 안된다. 따라서 음수일 때 return;한다.
ft_putendl_fd()와는 다르게 마지막에 '\n'을 출력하지 않는다는 점을 주의한다.
#include "libft.h"
void ft_putstr_fd(char *s, int fd)
{
int index;
index = 0;
if (fd < 0)
return ;
while (s[index] != '\0')
{
ft_putchar_fd(s[index], fd);
index++;
}
}
(1) 파일 디스크립터가 음수인지 검사해 음수이면 return;한다.
(2) 이전에 구현한 ft_putchar_fd()를 이용해 s[index]가 0이 아닐 때까지 s[index]를 출력한다.