Open rask24 opened 1 week ago
It is necessary for more efficient file descriptor management to close pipe[1] in the child process.
minishell$ echo Hello | cat | sleep 100 | echo Hello | cat | sleep 100
❯ lsof -c sleep COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sleep 93672 reiyaasuke cwd DIR 1,14 832 68945239 /Users/reiyaasuke/clang/minishell sleep 93672 reiyaasuke txt REG 1,14 101136 1152921500312524816 /bin/sleep sleep 93672 reiyaasuke 0 PIPE 0xb976823fc5e8455d 16384 sleep 93672 reiyaasuke 1 PIPE 0x24a92ef58ba3a97c 16384 ->0xa7f54fb810ee5165 sleep 93672 reiyaasuke 2u CHR 16,16 0t392463 5745 /dev/ttys016 sleep 93672 reiyaasuke 3 PIPE 0xa7f54fb810ee5165 16384 ->0x24a92ef58ba3a97c sleep 93675 reiyaasuke cwd DIR 1,14 832 68945239 /Users/reiyaasuke/clang/minishell sleep 93675 reiyaasuke txt REG 1,14 101136 1152921500312524816 /bin/sleep sleep 93675 reiyaasuke 0 PIPE 0x1f8eb6655002a3df 16384 sleep 93675 reiyaasuke 1u CHR 16,16 0t392463 5745 /dev/ttys016 sleep 93675 reiyaasuke 2u CHR 16,16 0t392463 5745 /dev/ttys016
typedef struct s_pipeline_conf { int fd_prev_in; int fd_prev_out; int fd_next_in; int fd_next_out; } t_pipeline_conf;
SIGPIPE:
Description
It is necessary for more efficient file descriptor management to close pipe[1] in the child process.