事案詳細
change_fd.c
の
int change_stdin_fd(char arg, int fd)
の
*fd = open(arg, O_RDWR);
に失敗した場合、errno が適切に設定されるので、strerrorのエラーメッセージを表示する必要がある。
例えば、openの原因が権限がない場合は、
Permission denied
と表示する必要があるが、minishellは
No such file or directory
と表示される。
※実は他のところも、「No such file or directory」等ハードコーディングしていますが、実はstrerror(errno)で表示できる気がいたします。
事案 openに失敗した際のエラーメッセージ相違
事案詳細 change_fd.c の int change_stdin_fd(char arg, int fd) の *fd = open(arg, O_RDWR); に失敗した場合、errno が適切に設定されるので、strerrorのエラーメッセージを表示する必要がある。 例えば、openの原因が権限がない場合は、 Permission denied と表示する必要があるが、minishellは No such file or directory と表示される。 ※実は他のところも、「No such file or directory」等ハードコーディングしていますが、実はstrerror(errno)で表示できる気がいたします。
C言語関数辞典(strerror) http://www.c-tipsref.com/reference/string/strerror.html
再現手順 [bash]
[minishell]