运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

将一个字符戳入父进程的缓冲区

运维开发网 https://www.qedev.com 2020-07-15 11:32 出处:网络 作者:运维开发网整理
我正在尝试编写一个在后台运行的程序,该程序可以“键入”父进程,例如发出 shell命令就好像我自己在键盘上键入它们一样.我试过用ungetc()来回到STDIN: #include <stdio.h> int main (int argc, char** argv) { ungetc('x', stdin); return 0; } 我希望这样做: $gcc -o
我正在尝试编写一个在后台运行的程序,该程序可以“键入”父进程,例如发出 shell命令就好像我自己在键盘上键入它们一样.我试过用ungetc()来回到STDIN:

#include <stdio.h>

int main (int argc, char** argv) {
        ungetc('x', stdin);
        return 0;
}

我希望这样做:

$gcc -o unget unget.c
$./unget&

如果我只是键入它,就会让我在带有x的$提示符下离开,但是我什么都没得到.我是否因为进入后台而“迷失”了STDIN?谢谢!

第二个答案不是对你的问题的回答,而是你想要解决的问题.它比向shell发送击键要强大得多.

在shell中,使用trap命令设置信号处理程序.例如:

trap "echo hello" USR2

用您想要使用的任何信号替换USR2.然后运行一个子进程,定期将信号发送给它的父进程.

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消