對於C中的項目,我們需要在Unix服務器上構建一個shell。在Unix環境中,有沒有一種方法可以以編程方式調用C中的哪個?
它需要能夠執行Unix本身的功能,而不是bash(或任何其他Unix shell)。
我正在寫一個方法來希望將一個調用概括爲一個命令。到一個通用的功能:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <string.h>
#include <limits.h>
void execCmd(char* cmd,char* options)
{
char directory[MAX_CANON] = "/bin/"; //currently is just set to /bin
char* toExec = strcat(directory,cmd);
我想設置變量'目錄'爲我打電話給Unix命令的正確目錄。所以,我希望能夠使用類似於 char目錄[MAX_CANON] = which(cmd)的東西;
這樣,哪個函數會返回我試圖調用的命令的目錄。
如果您覺得這不是一個好的解決方案,請推薦一些其他方法。
感謝
編輯:我想在最壞的情況,我可以做一個巨大的if-else語句,設置基於CMD參數的「目錄」 VBL。
謝謝,execlp(cmd,cmd,NULL);訣竅! – AndyG 2009-02-11 04:48:37