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

标签 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++还是陌生的...

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

最佳答案

苹果的手册页上说您可以打电话

killall afplay

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

关于c++ - 使用C++ shell()获取PID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306529/

相关文章:

macos - if 中的 zsh 变量赋值

c# - 使用 c#.net 将立体声作为单声道播放不同 channel 的声音

java 声音。暂时静音背景音乐并播放声音

c++ - C++中的指针输出问题

macos - 从命令行在 MacOS 上启动 neo4j(社区版)

macos - 在 macOS 上打印可执行文件的 rpath

android - 在Android中使用mp.stop()时出现错误

c++ - “Integer constant is so large that it is unsigned”编译器警告有理

c++ - std::string 分配的内存是否会影响性能?

c++ - 使 QTcpServer 只接受 IPv4 连接