Mit popen() öffnet ein Programm in der Kommandozeile?

Ist es möglich, öffnen Sie ein Programm mit einem anderen Programm? Zum Beispiel:
Ich möchte eine Befehlszeile-Anwendung, die in C, wird der Benutzer aufgefordert, geben Sie den Namen ein Programm (sagen wir Microsoft Word.app), und das Programm wird gestartet. Würde ich etwas wie das hier tun:

#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);
}

Jedoch, popen (), bittet mich für einen anderen char. Wie würde ich mich über die mit popen (), um das Programm zu öffnen?

EDIT: Der folgende code funktioniert!

#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);

}
Obwohl Ihr folgende code funktioniert, es hat das Potenzial, Absturz aus, die über die Puffer in strcat, den Sie hinzufügen, eine vielleicht 1000-Zeichen-array in ein Ziel, dass nur maximal 100 Zeichen. char openApp[100]; muss mindestens char openApp[100 + 1000 + 20];

InformationsquelleAutor Mike | 2011-05-22

Schreibe einen Kommentar