close_stdio() at exit
This commit is contained in:
@@ -66,6 +66,7 @@ int builtin_echo(int argc, char *argv[], t_all *c);
|
|||||||
int exit_free(t_all *c, int exit_status);
|
int exit_free(t_all *c, int exit_status);
|
||||||
void free_pipeline(t_cmd **pipeline_ptr[]);
|
void free_pipeline(t_cmd **pipeline_ptr[]);
|
||||||
void close_pipeline_fd(t_cmd *pipeline[]);
|
void close_pipeline_fd(t_cmd *pipeline[]);
|
||||||
|
void close_stdio(void);
|
||||||
typedef void (*t_free_f)(void *); // generic
|
typedef void (*t_free_f)(void *); // generic
|
||||||
|
|
||||||
// Error wrappers
|
// Error wrappers
|
||||||
|
|||||||
11
srcs/free.c
11
srcs/free.c
@@ -23,6 +23,7 @@ int exit_free(t_all *c, int exit_status)
|
|||||||
//if (c->termios_changed)
|
//if (c->termios_changed)
|
||||||
// tcsetattr(STDIN_FILENO, TCSANOW, &c->ori_termios);
|
// tcsetattr(STDIN_FILENO, TCSANOW, &c->ori_termios);
|
||||||
rl_clear_history();
|
rl_clear_history();
|
||||||
|
close_stdio();
|
||||||
exit(exit_status);
|
exit(exit_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,3 +71,13 @@ void close_pipeline_fd(t_cmd *pipeline[])
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void close_stdio(void)
|
||||||
|
{
|
||||||
|
if (close(STDIN_FILENO) == -1)
|
||||||
|
perror("close()");
|
||||||
|
if (close(STDOUT_FILENO) == -1)
|
||||||
|
perror("close()");
|
||||||
|
if (close(STDERR_FILENO) == -1)
|
||||||
|
perror("close()");
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user