从GUI应用程序运行终端命令?

时间:2009-08-19 04:23:01

标签: c macos terminal task

你们知道如何从你的GUI应用程序运行终端命令吗?我需要为我的应用程序编码。例如,如果我在终端中键入“netstat”,它将为我提供所有端口。我希望从我的xcode应用程序中获取此信息。那可能吗?顺便说一句,它不仅仅是“netstat”命令,它可能是“sudo ....”

谢谢, 凯文

3 个答案:

答案 0 :(得分: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 :(得分:1)

如果您愿意下载到C,则可以使用system()功能。当然,这将打印命令的结果。如果要存储命令的结果,则可能需要使用管道。

答案 2 :(得分:1)

看看NSTask是否有类似Cocoa的方法。