1
我有一些麻煩,在輸入和輸出重定向到文件中的背景中運行交互式shell(/ bin/bash,/ bin/sh for ins)。我嘗試了不同的東西,但它不起作用。外殼與輸入和輸出文件在C
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void) {
char *argve[2];
argve[0]="/bin/sh";
argve[1]=NULL;
FILE *fichin, *fichout;
fichin=fopen("/root/C/fichin.temp", "w+");
fichout=fopen("/root/C/fichout.temp", "w+");
dup2(fileno(fichin), 0); //stdin
dup2(fileno(fichout), 1); //stdout
dup2(fileno(fichout), 2); //stderr
/*freopen("/root/C/fichin.temp", "r", stdin);
freopen("/root/C/fichout.temp", "w+", stdout);*/
system("/bin/sh");
//execve("/bin/sh", argve, NULL);
return 0;
}
你的問題到底是什麼? – squiguy 2013-04-10 17:29:40
你確定應該用'w +'模式打開'fichin.temp'嗎?它看起來應該是'r',因爲它是輸入文件。 – Ale 2013-04-10 17:30:46
爲什麼這段代碼不工作?我如何在後臺輸入和輸出重定向到文件中運行交互式shell(/ bin/bash,/ bin/sh)? – joub 2013-04-10 17:31:15