2013-08-09 8 views
0

내 소스 코드는 다음과 같습니다 :NSTask로 터미널을 제어하는 ​​방법은 무엇입니까?

int main(int argc, const char * argv[]) 
{ 
    char str[80]; 
    memset(str, 0x00, 80); 
    sprintf(str, "%s %s", "open -a","terminal.app"); 
    NSString *cmdstr = [NSString stringWithUTF8String:str]; 

    NSTask *task = [NSTask new]; 
    [task setLaunchPath:@"/bin/sh"]; 
    [task setArguments:[NSArray arrayWithObjects:@"-c", cmdstr, nil]]; 

    NSPipe *pipe_out = [NSPipe pipe]; 
    [task setStandardOutput:pipe_out]; 

    [task launch]; 

    NSData *data = [[pipe_out fileHandleForReading] readDataToEndOfFile]; 

    [task waitUntilExit]; 

    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", string); 

} 

여기하는 질문은 다음과 같습니다

  1. 내가 "터미널 응용 프로그램"을 개설, 내 목표는 파이프 또는 일도 통해 터미널 응용 프로그램과 주요 API 사이의 통신을하고있다 . 터미널 앱과 기본 API간에 파이프 또는 무언가를 만들려면 어떻게해야합니까?

  2. 터미널 응용 프로그램을 열었을 때 새 터미널 응용 프로그램을 열 수 없습니다. 새 탭 또는 새 창에서 터미널 응용 프로그램을 여는 방법은 무엇입니까?

답변