我正在寻找一种将参数作为String传递给C语言中的Function kill(man 2 kill)的方法,因为Signal取决于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);

关于c - 在C中将字符串参数传递给kill(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41538301/

10-13 08:45