c - 在 C 中处理信号、管道和分支

标签 c bash shell signals fork

如何让进程在不终止的情况下监听用户输入? .因此,例如,我希望 bash 等待 X 分钟,如果我说“停止”,它就会退出,或者只是继续等待……我怎样才能做到这一点?因此,在执行时我的进程会等待,然后我希望能够通过标准输入停止、暂停或继续,键入“停止”、“继续”或“暂停”。谢谢。

最佳答案

一个简单(但浪费)的选择是初始程序 fork 然后等待输入。子进程可以更新计数器。

当父程序接收到“暂停”时,它会向子程序发送信号 SIGTSTP。

当父程序收到“继续”时,它会向子程序发送信号 SIGCONT。

当父程序接收到“停止”时,它向子程序发送信号 SIGQUIT。

如果需要,您还可以在父级中使用 sigaction 设置一个 SIGINT 处理程序,当您键入 Ctrl+C 时,它会杀死子级。

关于c - 在 C 中处理信号、管道和分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30740236/

相关文章:

bash - 如何在没有带有环境变量的文件的情况下使用 SED?

linux - 在 gpg 脚本中写入位于其他文本文件中的密码

shell - 直接调用和通过 shell 脚本调用时为 "echo -e"

python - python3-cd在反向shell中不起作用

c++ - 线程参数的高效快速方法

arrays - 为什么数组不可赋值?

javascript - HTML 不更新?

c - Dining Philosophers in C 内存泄漏

linux - 连接多个文本字段并保留所有内容..

linux - 根据标签内的关键字删除行