Я работаю над игрой на C++, в которой я хочу играть музыку в начале. Это пример моего кода до сих пор:Получение PID с C++ shell()?
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
или хотя бы получить его ПИД-код, чтобы я мог kill
?
Я на Mac, и я новичок в C++ ...
ВНИМАНИЕ: Это плохая практика; он может убить важные процессы и убить всех, поэтому он может остановить задачи, которые использовал пользователь! страничное руководство
Вы уверены, что называют отдельный процесс для воспроизведения музыки в приложении является хорошей идеей? :) – Zefick
Почему бы и нет? – keeganjk
@ KeeganKuhn хорошо, во-первых, что, если у кого-то есть система, в которой есть программа под названием «afplay», которая закрывает свой ядерный реактор? Вы не должны использовать 'system' для чего-либо, что ваша программа может сделать сама, и пока вы не приобретете опыт работы с C++, вы, вероятно, не должны использовать' system' вообще. –