【发布时间】:2011-08-30 15:24:24
【问题描述】:
是否可以使用另一个程序打开一个程序?例如: 我想在 C 中创建一个命令行应用程序,它会提示用户输入程序的名称(比如说 Microsoft Word.app),然后该程序将启动。我会做这样的事情吗:
#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);
}
但是,popen() 要求我输入另一个字符。我将如何使用 popen() 打开程序?
编辑:以下代码有效!
#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);
}
【问题讨论】:
-
尽管您的以下代码有效,但它有可能因在 strcat 中的缓冲区上运行而崩溃,您正在将可能 1000 个字符的数组添加到最多只能容纳 100 个字符的目标中。字符打开应用程序[100];必须至少为 char openApp[100 + 1000 + 20];
标签: c xcode command-line popen