在 C 中将字符串参数传递给 kill()

Passing String Arguments to kill() in C

我正在寻找一种方法将参数作为字符串传递给 C 中的函数 kill (man 2 kill),因为信号取决于 OS。所以用户输入程序应该发送的内容(例如 SIGUSR1,..),我想提交它。通过 kill(pid,USR_INPUT);

我的错误

Invalid Argument

我在哪里使用它:

kill(pid,name);

非常感谢

这根本不可能。

kill(2) 不接受信号的字符串(第二个)参数。您必须处理作为字符串输入的信号,这听起来有点不确定。如果您确实需要这样做,您可以通过将字符串输入与您感兴趣的信号列表进行比较,将其转换为整数形式:

if (strcmp(sig_str, "SIGINT") == 0) {
   sig_num = SIGINT;
} else if (sig_str, "SIGTERM") == 0) {
   sig_num = SIGTERM;
} else if ...

...

kill(pid, sig_num);