我正在编写一个GUI C/C++编辑器,该编辑器还使用Cydia附带的GNU编译器为iOS平台编译源文件。
这将是一个Cydia应用程序,所以一切都应该工作。
要编译文件,我需要运行一个终端命令行,我正在考虑使用函数"system()",因为我想不出其他任何东西。
我现在正在寻找一种方法,以某种方式将终端的输出和输入重定向到GUI,但我真的不知道从哪里开始。
我读到我可能可以使用管道来实现这一点,但它并没有真正达到我需要的目的,因为我需要一个来自终端的"实时"输入和输出,而不是一个只有终端输出的.txt
文件。。。
希望有人能帮助我。
当然。使用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);