問題是這樣的,我想用ncurses畫個界面,在這個界面的一個部分上想做成終端的樣,
就是說我在自己畫的這個界面上用鍵盤敲命令,再在後台傳給終端,讓它處理完後傳回
我的界面上顯示。我想不明白。
input = fopen("/dev/tty", "r");
output = fopen("/dev/tty", "w");
char str[1024]={0};
char rstr[1024]={0};
scanf("%s",str);
write(fileno(out),str,1024);
read(fileno(in),rstr,1024);
這樣做好像明顯不對……
搜了個例子:
#include
#include
#include
#include
#include
int main( void )
{
FILE *stream;
FILE *wstream;
char buf[1024];
memset( buf, '\0', sizeof(buf) );//初始化buf,以免後面寫如亂碼到文件中
stream = popen( "ls -l", "r" ); //將“ls -l”命令的輸出 通過管道讀取(“r”參數)到FILE* stream
wstream = fopen( "test_popen.txt", "w+"); //新建一個可寫的文件
fread( buf, sizeof(char), sizeof(buf), stream); //將剛剛FILE* stream的數據流讀取到buf中
fwrite( buf, 1, sizeof(buf), wstream );//將buf中的數據寫到FILE *wstream對應的流中,也是寫到文件中
pclose( stream );
fclose( wstream );
return 0;
}