Je travaille sur un jeu C++, dont je veux jouer de la musique au début. Ceci est un exemple de mon code à ce jour:Obtention d'un PID avec 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;
}
Cependant, la kill $!
n'est pas kill
ment, ou arrêter la musique afplay
. Je pense que c'est parce que le system("afplay ~/music.mp3 &>/dev/null &");
ne sort pas le PID en $!
. Comment puis-je kill
afplay
ou au moins obtenir son PID afin que je puisse kill
?
Je suis sur un Mac et je suis nouveau C++ ...
AVERTISSEMENT: Ceci est une mauvaise pratique; il pourrait tuer des processus importants et tuer tout le monde, il peut donc arrêter les tâches que l'utilisateur utilisait!
Etes-vous sûr appeler un processus distinct pour la musique de jeu dans l'application est une bonne idée? :) – Zefick
Pourquoi ce ne serait pas? – keeganjk
@KeeganKuhn Eh bien, d'abord, que se passe-t-il si quelqu'un a un système qui a un programme appelé "afplay" qui arrête son réacteur nucléaire? Vous ne devriez pas utiliser 'system' pour tout ce que votre programme peut faire lui-même et jusqu'à ce que vous soyez très expérimenté avec C++, vous ne devriez probablement pas utiliser' system'. –