私は C のアマチュアであり、C で文字列を操作するのに問題があります。目的は、電流pid
をベース文字列に追加し、それを で呼び出すことsystem(system_call)
です。私は次のものを持っています:
char system_call[100] = "top -p "
char pid_string[30];
//quite a bit of other code
int main(int argc, char *argv[])
{
pid_t pid = getpid();
sprintf(pid_string,"%d",pid);
strcat(system_call,pid_string);
printf(system_call); //prints what I expect; something like 'top -p 5580'
system(system_call); //doesn't work
}
呼び出しはsystem
単純にsh: system: not found
. C が得意な人はすぐに問題を理解できると思います。C の文字列の後の末尾の 0 に何か関係があるのではないかと思いましたが、C があまりにもひどいので、それを認識したり、どうすればよいかわかりません。私も試しsystem("%s",system_call)
ましたが、system
1つの引数しか取りません。メモリ割り当てに何か問題がありますか? どんな洞察も高く評価されます。