2009-08-19 108 views
2

你们知道如何从你的GUI应用程序运行终端命令吗?我需要为我的应用编码。例如,如果我在终端输入“netstat”,它会给我所有的端口。我想从我的Xcode应用程序。那可能吗? BTW它不只是在“netstat的”命令,它可能是“命令......”从GUI应用程序运行终端命令?

感谢, 凯文

回答

3

下面是我刚刚在使用NSTask的应用程序中删除的代码。

NSTask* task = [[[NSTask alloc] init] autorelease]; 
[task setLaunchPath: @"/usr/bin/java"]; 

NSArray* args = [NSArray arrayWithObjects: @"-jar", jar, @"--cue", inp, @"--dir", dir, mp3, nil]; 
[task setArguments: args]; 

taskOutputFile = [[self createTmpFile] retain]; 
NSFileHandle* taskOutput = [NSFileHandle fileHandleForWritingAtPath:taskOutputFile]; 

[task setStandardOutput: taskOutput]; 
[task launch]; 

这在临时文件启动一个应用程序(JAVA),并记录输出

1

如果你愿意下降到C,你可以只使用system()功能。当然,这会打印命令的结果。如果你想存储命令的结果,你可能会想要使用管道。

1

看看NSTask,看看更像可可这样做的方式。