아주 제한된 기본 기능을 가진 미니 쉘을 작성하려고합니다. 그러나 지금은 SIGINT를 다룰 때마다 명령을 다시 입력하기 전에 다시 입력해야합니다.SIGINT를 처리 한 직후에 C 미니 쉘이 반환되지 않습니다.
void loop()
{
struct sigaction sa;
sa.sa_handler = do_nothing;
int exit_status;
do
{
char **args;
sigaction(SIGINT, &sa, NULL);
my_str("\nMINISHELL: ");
my_str(current_directory);
my_str("/ $: ");
args = get_args();
exit_status = execute(args);
}
while(exit_status);
}
void do_nothing()
{
my_str("\nMINISHELL: ");
my_str(current_directory);
my_str("/ $: ");
}
나는 단지 내가 쓰기 <unistd.h>
, <sys/types.h>
, <signal.h>
, <unistd.h>
및 <sys/wait.h>
뿐만 아니라 어떤 방법을 사용할 수 있어요. 즉 my_str()
은 write()
sys 호출로 구현 한 문자열 인쇄 명령문입니다.
제발 도와주세요.
",,,, 및 _ 만 사용할 수 있습니다." 무엇을 원하십니까? – jwdonahue
https://stackoverflow.com/questions/8573842/use-of-sigaction – jwdonahue
@jwdonahue OP에는 마크 다운 엔진이 (알 수없는) HTML 요소 태그로 처리 한 꺾쇠 괄호가있는 파일 이름이 있습니다. 나는 그들이 눈에 보이도록 고정시켰다. –