Je pense # 2 de pajton est la réponse la plus appropriée à la question. Il peut être "ls" n'est pas le meilleur exemple d'une commande pour laquelle vous voudriez l'utiliser puisqu'il existe d'autres fonctions de bibliothèque C natives disponibles pour ce faire, mais il existe d'autres programmes qui génèrent des sorties que vous pouvez vouloir traiter immédiatement sans avoir à écrire/lire dans un fichier.
# 1 est également bon sur un système de type UNIX/Linux qui implémente un système de fichiers RAM efficace qui peut être utilisé pour lire/écrire des données globales du système. Sur presque tous les systèmes, c'est un moyen très rapide de faire le travail. Encore une fois, la plupart des réponses offrent de meilleurs moyens d'obtenir le contenu d'un répertoire en utilisant des bibliothèques C natives, mais il existe des instances où des fonctions telles que pipe(), fork(), dup(), exec(), système() et popen() sont appropriés pour communiquer avec les processus du système.
@ J.F. Sebastian - Merci. –
Sachez que vous ne devriez pas utiliser 'readdir' dans un programme multithread. Au lieu de cela, vous devriez utiliser 'readdir_r' –