UbuntuのCで簡単なシェルを作成しようとしています。
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); }
説明してもらえますか?