0

Objective-Cで書かれた「PseudoTTY」と呼ばれるオープンソースのXcodeプロジェクトがあり、プログラムでコマンドを実行する方法を見つけようとしています。アプリケーションをコンパイルすると、目的を正確に実行する素敵な小さなターミナル ウィンドウが表示されます。ただし、コマンドを手動で入力する必要があります。

私がやりたいことは、ターミナルでコマンドをプログラムで実行し、プログラムで結果を解析できるようにすることです。

興味のあるスポットは次のとおりです。

- (void)keyDown:(NSEvent *)event
{
    const char * typein = [[event characters] UTF8String];

    [[pty_ masterFileHandle]
          writeData:[NSData dataWithBytes:typein length:strlen(typein)]];
}

-(void) didRead: (NSNotification *)noty
{
    NSData * data = [[noty userInfo] objectForKey:NSFileHandleNotificationDataItem];

    if ([data length] == 0)
        return; // end of file

    NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

    [self insertText:str];
4

1 に答える 1

0

あなたがする必要があるtypeinのは、あなたが選んだ文字列に置き換えるだけで、それはあなたが望むことをします. 出力はstrメソッドdidRead:に含まれます。

char *myCommand = "ls";
[[pty_ masterFileHandle] writeData:[NSData dataWithBytes:myCommand 
                                                  length:strlen(myCommand)]];
于 2012-01-08T19:52:37.250 に答える