Je voudrais savoir si avec le swift 3.0 il est possible d'exécuter une ligne de commande comme la fonction system("ls") en C ou CPP.
J'ai trouvé des tutos mais le soucis c'est que avant il fallait utiliser Task après c'était Process maintenant CommandLine mais bon rien de marche du coup j'ai des doutes
Merci !
Quand tu regardes l'abîme, l'abîme regarde aussi en toi.
Les commandes que tu execute dans le shell (ls, mkdir, git, ...) sont en fait des programmes dans des fichiers executables qui se trouvent dans les dossiers répértoriés dans la variable $PATH de ton terminal !
Essaye de faire la commande "echo $PATH" dans ton teminal, tu verra des noms de dossiers séparés par des ":"
Lors-ce que tu envoie une commande dans ton shell, il va alors regarder dans tout les chemins du PATH si un executable du nom de ta commande est bien present !
Lors-ce que tu veut executer une commande dans un programme dans beaucoup de langage, tu dois definir toi meme le chemin complet ! La fonction systeme du C fait tout cela toute seule !
En swift, si tu veux faire une commande comme ls, tu va devoir chercher le chemin de ta commande (la commande which peut t'aider) :
MacBookArt% which ls
/bin/ls
et maintenant que tu as le chemin, tu dois utiliser un objet process pour la lancer :
import Foundation
let process = Process()
process.launchPath = "/bin/ls"
process.arguments = ["-l"]
print("lancement de la commande")
process.launch()
process.waitUntilExit()
print("fin de la commande")
Process est le nouveau nom de NSTask !
par contre CommandLine n'a rien a voir, c'est un objet qui contient les arguments envoyé a ton programme !
- Edité par giantwow 13 septembre 2017 à 10:39:13
Tutoriels sur GameplayKit, SceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
Je crois que c'est du au fait que tu essaye de lancer une tread dans une application sur iPhone. Je ne sais meme pas si c'est vraiment possible de lancer de sous programme sur iOS !
- Edité par giantwow 13 septembre 2017 à 13:33:00
Tutoriels sur GameplayKit, SceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
Ha ! bon bon bon je vais trouver une autre solution du coup merci de ta réponse !
Quand tu regardes l'abîme, l'abîme regarde aussi en toi.
[Swift] Exécuter une ligne de commande
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.