【发布时间】:2009-02-11 04:30:14
【问题描述】:
对于 C 语言的项目,我们需要在 Unix 服务器上构建一个 shell。
它需要能够执行 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);
这样 which 函数将返回我尝试调用的命令的目录。
如果您觉得这不是一个好的解决方案,请推荐其他方式。
谢谢
编辑:我想最坏的情况我可以做一个大量的 if-else 语句,根据 cmd 参数设置“目录”vbl。
【问题讨论】: