Ctrl+\の挙動
Closed this issue · 5 comments
tkomatsu commented
bash-3.2$ pwd <-Ctrl+\の後にenter
/Users/tkomatsu/Documents/42/minishell
bash-3.2$
この挙動が再現できないらしいという話が他のチームのレビューとかで上がっているのですが、再現できるのではというアイデアを見つけました。シグナルの実装はお任せしてしまっているので、見当違いだったら指摘してください。
minishell/srcs/utils/signal_handler.c
Lines 31 to 45 in a348e7a
Ctrl+\が押されるとこの関数が実行されます。この時に
get_next_input()
を呼び出せばstatic変数にそれまで記入済みのものが保存されそうです。その際
get_next_input()
でオプションもしくはシグナルで反応して、static char *str[STATIC_MAX]
からchar **line
に保存しないように修正する必要は出てきますが。tkomatsu commented
試してみたけど、うまくいかないですね 😢
tkomatsu commented
シグナルが呼ばれた時点でコアダンプに吐き出されてしまうから追うことはできないってことですかね?
このシグナルのデフォルトの処理が「終了+コアダンプ」ってだけならやっぱりいけそうな気がするんだけどなあ
tkomatsu commented
シグナルの理解があまりできていないのですが、シグナルハンドラが実行された場合それまでの処理は止まりメインループに戻ると思っているのですが、合ってますか?
シグナルが出た時点の処理から再開されるのですね。
tkomatsu commented
https://teratail.com/questions/290080
iwasaさんにたどり着いた笑
tkomatsu commented
解決できないことがわかったので閉じます。