对于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