我知道我的头衔可能令人困惑,但请耐心等待。我是信号新手。
我有一个类似于cat
或more
unix命令的程序,但它有一点点扭曲。它打印出前x行,然后允许用户按Ctrl- /打印下x行。我知道Ctrl-/
默认用于停止进程,但我想覆盖它。
我想按照
的方式做点什么 if (user_enters = signal(SIGQUIT, sig_function))
然后打印下一行x行
我不确定如何有条件地检查用户是否输入了Ctrl-/
信号
现在我的代码强制用户输入n转到下一行x,就像这样......
scanf(" %c", &next);
if (next == 'n'){
//loop +4 times and only print the last 4 lines
for (i = 0; i < 4; i++){
printf("%s", buf);
if (i < 3){
if (fgets(buf, sizeof(buf), file) == NULL){
fclose(file);
return 0;
}
}
}
有办法做到这一点吗?