2013-02-09 35 views
0

我正在編寫一個GUI C/C++編輯器,它也使用Cydia附帶的GNU編譯器編譯iOS平臺的源文件。將終端的輸入/輸出重定向到iOS中的gui JB

這將是一個Cydia應用程序,所以一切都應該工作。

編譯文件我需要運行一個終端命令行,我正在考慮使用函數「system()」,因爲我想不出其他任何東西。

我現在正在尋找一種方法來重定向終端的輸出和輸入到GUI,但我真的不知道從哪裏開始。

我讀到我也許可以使用管道來做到這一點,但它並沒有真正做我所需要的,因爲我需要終端的「實時」輸入和輸出,而不是終端的.txt文件輸出只...

希望有人能幫助我。

回答

1

當然。使用popen()。像這樣:

const char *cmd = [NSString stringWithFormat:@"gcc -o %[email protected] %[email protected]", 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); 
+0

我不知道這個%1 $格式說明符。今天學到了新東西。謝謝! – demosten 2013-02-09 23:41:45

+0

@demosten感謝我的upvote:P – 2013-02-09 23:46:35

+0

不popen()只讀或只寫?我需要一個不是單向的輸入/輸出,這是主要問題... 我的腦袋正在努力解決這個問題 – kobim 2013-02-10 09:33:13

相關問題