用C ++ shell()获取PID?

时间:2017-02-17 20:09:20

标签: c++ macos audio pid kill

我正在开发一款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 ++的新手......

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

1 个答案:

答案 0 :(得分:0)

Apple的手册页说你可以打电话

killall afplay

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