2009-08-19 10 views
2

GUI 응용 프로그램에서 터미널 명령을 실행하는 방법을 알고 계십니까? 내 응용 프로그램에 대한 코딩이 필요합니다. 예를 들어, 터미널에 "netstat"을 입력하면 모든 포트가 제공됩니다. 내 xcode 앱에서 이것을 원한다. 그게 가능하니? 당신이 C에 드롭 다운하고자하는 경우 BTW가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]; 

1

.... "sudo는"단지 "에서 netstat"가 될 수 명령하지, 당신은 단지 system() 기능을 사용할 수 있습니다. 물론 명령의 결과가 출력됩니다. 명령의 결과를 저장하려면 파이프를 사용하는 것이 좋습니다.

1

자세한 내용은 NSTask을 보시고 코코아와 같은 방법을 사용해보십시오.

관련 문제