使用 C++ shell() 获取 PID?

Getting PID With C++ shell()?

我正在开发一个 C++ 游戏,我想在开始时播放音乐。到目前为止,这是我的代码示例:

int main() {
    // Gets user's name
    system("clear");
    system("afplay ~/music.mp3 &>/dev/null &");
    string name;
    cout << "###################\n";
    cout << "# Enter your name #\n";
    cout << "###################\n";
    cin >> name;

    // Greets user
    system("clear");
    cout << "So, your name is " << name << "?\n";
    system("sleep 1.5");
    cout << "Greetings, and welcome to the world of NULL!\n\n";
    system("kill $!");

    return 0;
}

但是,kill $! 并未 kill 播放或停止播放 afplay 音乐。我认为这是因为 system("afplay ~/music.mp3 &>/dev/null &"); 没有将 PID 输出到 $!.

我怎样才能 kill afplay 或者至少得到它的 PID 以便我可以 kill 它?

我正在 Mac 并且我是 C++ 的新手...

警告:这是一种不好的做法;它可能会杀死重要进程并杀死所有进程,因此它可能会停止用户正在使用的任务!

Apple 的手册页说您可以调用

killall afplay

http://osxdaily.com/2010/12/07/command-line-mp3-player-in-mac-os-x/