0

我正在编写一个 GUI C/C++ 编辑器,它还使用 Cydia 附带的 GNU 编译器为 iOS 平台编译源文件。

这将是一个 Cydia 应用程序,所以一切都应该工作。

要编译文件,我需要运行终端命令行,并且我正在考虑使用函数“system()”,因为我想不出其他任何东西。

我现在正在寻找一种方法,以某种方式将终端的输出和输入重定向到 GUI,但我真的不知道从哪里开始。

我读到我可能可以使用管道来做到这一点,但它并没有真正做我需要的事情,因为我需要终端的“实时”输入和输出,而不是.txt只有终端输出的文件......

希望有人能帮助我。

4

1 回答 1

1

当然。使用popen(). 像这样的东西:

const char *cmd = [NSString stringWithFormat:@"gcc -o %1$@.o %1$@.c", sourceFileName].UTF8String;

FILE *p = popen(cmd, "r");
size_t sz;
char buf[1024];

while ((sz = fread(buf, sizeof(buf), 1, p) != 0) {
    NSString *s = [[NSString alloc] initWithBytes:buf length:sz encoding:NSUTF8StringEncoding];
    textView.text = [textView.text stringByAppendingString:s];
    [s release];
}

pclose(p);
于 2013-02-09T23:34:47.897 回答