我即将在 Ubuntu 上用 C 语言编写一个简单的 shell。我考虑过使用该
exevcp()
功能。我只能运行“ls”命令,其他命令似乎都不起作用。有人能告诉我为什么会这样,或者给我一个更好的方法来构建外壳的想法吗?我的目的是构建这个外壳;我不明白为什么我不能直接使用命令行并将其按原样放入
execvp()
函数中。#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> int main(int argc,char **argv,char **envp) { char* args[] = {"history" , NULL}; execvp(args[0],args); }
请给我解释一下好吗?