/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   stdinput_handler.c                                 :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: sryou <[email protected]>           +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2022/02/19 08:32:51 by sryou             #+#    #+#             */
/*   Updated: 2022/02/22 10:12:34 by sryou            ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#include "bsq.h"

void	stdinput_handler(void)
{
	int		fd;
	int		readn;
	char	buf[100];

	fd = open(STDINPUT, O_WRONLY | O_TRUNC | O_CREAT, 0777); // 쓰기 전용으로 열 때, 파일이 없는 경우
	// O_WRONLY : 쓰기 전용
	// O_TRUNC  : 파일 생성 시, 이미 존재하는 파일이고 쓰기 옵션이면 내용을 모두 지우고 파일의 길이 0으로 변경
	// O_CREAT  : 파일이 없으면 생성한다. 파일을 생성할 권한을 필요로 한다.
	// 0777 : chmod 권한 설정과 비슷하다. O_CREAT 옵션을 위해 필수적으로 사용해야 하며, 파일 접근 권한을 명시한다.
	if (fd < 0)
	{
		ft_puterr();
		return ;
	}
	while (1)
	{
		readn = read(0, buf, 100);
		if (readn <= 0)
			break ;
		write(fd, buf, readn);
	}
	close(fd);
}