我用C寫langage包含這些行的程序:執行shell程序與execv
void main(int argc, char *argv[]) {
char* file=argv[1];
char* arguments[] = { "sh", argv[2], argv[3], argv[4], file, NULL };
execv("/bin/sh", arguments);
}
文件是prog.sh
包含的參數的簡單相加:
expr $1 + $2 + $3
當我通過./main prog.sh 1 2 3
運行程序我獲得誤差是
/bin/sh: 0: Can't open 1
雖然我預計輸出6(1 2 3總和)
您是否已編譯此代碼?進入'expr'可執行文件。它看起來非常尷尬。你有一個shell腳本,調用一個正在調用shell腳本的可執行文件,調用可執行文件...它不會和平地結束。 –
當我運行(sh prog.sh 1 2 3)從終端它的作品。不,我只是一個C程序調用shell腳本:) – Mehdi
什麼是'main'? –