À l'aide de popen() pour ouvrir un programme en ligne de commande?

Est-il possible d'ouvrir un programme à l'aide d'un autre programme? Par exemple:
Je veux faire une application en ligne de commande en C qui demande à l'utilisateur de taper le nom d'un programme (par exemple Microsoft Word.app), et que le programme va se lancer. Je ferais quelque chose comme ceci:

#include <stdio.h>
#include <time.h>
int main (int argc, const char * argv[]) {
    char programName[1000];
    printf("Type in the name of the program you would like to open: ");
    scanf("%s", programName);
    popen(programName);
}

Cependant, popen() me demande un autre char. Comment pourrais-je aller sur l'aide de popen() pour ouvrir le programme?

EDIT: Le code suivant fonctionne!

#include <stdio.h>
#include <time.h>

int main (int argc, const char * argv[]) {
    char programName[1000];
    char app[100] = ".app";
    char openApp[100] = "open /Applications/";
    printf("Type in the name of the program you would like to open: ");
    scanf("%s", programName);
    strcat(openApp, programName);
    strcat(openApp, app);
    system(openApp);

}
  • Bien que votre code suivant fonctionne, il a le potentiel de crash de l'exécution sur le tampon de strcat, vous ajoutez un peut de 1000 tableau de caractères en une destination qui ne peut contenir un maximum de 100 caractères. char openApp[100]; doit être d'au moins char openApp[100 + 1000 + 20];
InformationsquelleAutor Mike | 2011-05-22