diff options
| author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-10-22 20:34:23 +0200 | 
|---|---|---|
| committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-10-22 20:34:23 +0200 | 
| commit | c782926734e139eed9d45c1015bf2b0cee8e6165 (patch) | |
| tree | 2bd8ccfa126bf1fa59964331ade23b9bfa355fd3 /src | |
| parent | two-and-one unDONE (diff) | |
| download | 42-minishell-c782926734e139eed9d45c1015bf2b0cee8e6165.tar.gz 42-minishell-c782926734e139eed9d45c1015bf2b0cee8e6165.tar.bz2 42-minishell-c782926734e139eed9d45c1015bf2b0cee8e6165.tar.xz 42-minishell-c782926734e139eed9d45c1015bf2b0cee8e6165.tar.zst 42-minishell-c782926734e139eed9d45c1015bf2b0cee8e6165.zip | |
Error handled
Diffstat (limited to '')
| -rw-r--r-- | src/s_lredir.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/src/s_lredir.c b/src/s_lredir.c index b2e94e8..59ed6e1 100644 --- a/src/s_lredir.c +++ b/src/s_lredir.c @@ -13,7 +13,10 @@  #include <libft.h>  #include <stdint.h>  #include <stdlib.h> +#include <string.h> +#include <fcntl.h>  #include <unistd.h> +#include <errno.h>  #ifdef __linux__  # include <linux/limits.h>  #else @@ -66,7 +69,7 @@ void			s_lredir_clear(struct s_lredir **lredir)  	*lredir = NULL;  } -static int32_t		s_get_right_fd(const char path[]) +static int32_t	s_get_right_fd(const char path[])  {  	char	*ptr;  	int32_t	rfd; @@ -79,7 +82,12 @@ static int32_t		s_get_right_fd(const char path[])  		ft_dprintf(STDERR_FILENO, "minishell: %s: ambigous redirect\n", path);  		return (-1);  	} -	rfd = 0; +	rfd = ft_atoi(path); +	if (fcntl(rfd, F_GETFD) == -1) +	{ +		ft_dprintf(STDERR_FILENO, "minishell: %s: %s\n", path, strerror(errno)); +		return (-1); +	}  	return (rfd);  } | 
