。私はそれを見るように、私はちょうど端子からの文字列(SIGINT
、SIGUSR1
、など)などの信号を通過させ、プログラム内で簡単に変換することはできません。どちらも私は彼らの通信員としてint
S(2,30、など)を渡すと、直接システムコールを使って、自分の目標を達成することができました。ここに私のコードは次のとおりです。信号を通過させる信号送信側変換
種類
#include <iostream>
#include <csignal>
#include <unistd.h>
#include <cstdlib>
using namespace std;
int main (int argc, char* argv[]) {
int pid = atoi(argv[1]);
int signal = atoi(argv[2]); //passing signals directly as int
cout << signal << endl;
int error = kill(pid, signal);
if(error !=0)
cout << "Error sending signal to catcher program."<< endl;
return 0;
}
intとして、私は文字列を使用しようとしたときについては
~$./signal_sender 5977 2
2
Error sending signal to catcher program.
出力は、私がきちんと働いていた変換を見つけることができませんでした。
ありがとうございます。
はあなたから取得errno' ''殺す何() '? – NPE
'ESRCH 3/*そのようなプロセスはありません* /'だから私は間違ったPIDに信号を送信していたと思います。それを修正することで、intを使って作業しましたが、文字列を渡すときはまだ運がありません。 –
下記の私の全回答を参照してください。 – NPE