我正在编写一个shell并在代码中设置了一个警报:如果用户在5秒钟内未输入任何内容,那么shell会询问用户“您在5秒钟内未输入任何内容,是否要关闭[是/否]?”
我的代码如下:
while(1){
int pid = fork();
if(lt_start == NULL){
lt_start = time(NULL);//
}
if (pid==0)// child proecess
{
int cur= getpid();
lt_input= time(NULL);
if(lt_input-lt_start>5){
int len_command = 0;
char character;
printf("You don't input 5 seconds, do you want to teminate programm [Y/N]? ");
while((character=getchar())!='\n')
{
commandStr[len_command]=character;
len_command++;
}
commandStr[len_command]='\0';
// do something depend on user input Y OR N
}
}else
{
char character;
int len_command = 0;
// alramhandler(SIGINT, lt_start);
while((character=getchar())!='\n')
{
commandStr[len_command]=character;
len_command++;
}
commandStr[len_command]='\0';
// implement user input
}
每次输入一个字符,它将在父进程中实现。 我不知道如何修改它?
我应该如何更改代码:即使我没有输入任何shell,也要在5秒后显示警报?