execvp

    -2热度

    2回答

    我想创建一个子进程运行linux命令的shell(在execvp的帮助下),比如“ls”等。我也希望能够运行带有诸如“ls -a“或”ls -l/tmp“父母必须等待孩子用”waitpid“执行给定的命令。 当我试图用“ls -a”运行shell时,它将它作为2个单独的命令。输出:LS $ -a $ #include "stdio.h" #include "unistd.h" #include

    0热度

    1回答

    我尝试使用execvp来执行命令ls -l。 我有代码 execvp("ls",&argv[0]); 工作不错,但我用 execvp("ls -l",&argv[0]); 不起作用

    -2热度

    1回答

    我发现,启动一个代码的代码困惑...... “Pthreads标准指定来自任何线程的exec调用必须终止进程中的所有线程,并在新图像的main中启动一个新线程。 我确定需要多线程,所以在这种情况下,我该如何启动一个外部可执行文件,检查它是否正在运行并偶尔杀死它? 感谢

    -1热度

    1回答

    我有一个字符串数组,其中包含execvp的输入参数。我怎样才能把它变成一个字符串指针数组execvp? 对于一个参数的命令,两个字符串都存在: char param[4][10] = ["wc","file.txt"] 而且有两个参数: char param[4][10] = ["cp","file1.txt","file2.txt"] 如果我知道提前参数的数目,我可以简单的写 char

    0热度

    1回答

    我是新的与unix,我有一个在大学的assignemnt建立一个简单的shell在c内置cd和杀死命令.. 这是我的代码不工作..tbh我不明白这是最好的,所以我不惊讶它不工作..你能帮我吗?也不知道我将如何执行kill命令。谢谢! #include <sys/wait.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h>

    1热度

    1回答

    我了解管道要运行的命令,如ls -l | wc -l: int pipes[2]; pipe(pipes); if (fork() == 0){ //first fork dup2(pipes[1],1); close(pipes[0]); close(pipes[1]); execvp(arr1[0], arr1); //arr1[0] = "ls

    2热度

    1回答

    我的迷你shell程序接受管道命令,例如ls -l | wc -l并使用excevp来执行这些命令。 我的问题是,如果没有fork()execvp,管道命令工作正常,但shell后来终止。如果execvp有fork(),则会发生死循环。我无法修复它。 代码: void run_pipe(char **args){ int ps[2]; pipe(ps); pid_t

    0热度

    1回答

    时,execvp无法正常工作当字符串向量转换为char *向量char *的向量时,当参数以char **形式出现时正在工作,但是转换似乎有问题,我无法找到差异。 有没有更好的方法来做到这一点? vector<string> args; /* code that correctly parses args from user input */ pid_t kidpid =

    -1热度

    2回答

    我有一个像基本的外壳。 我的问题是,当我做类似./test ls -l的东西时,它不使用-l参数。 这和我做./test ls完全一样。 根据man,int execvp(const char * file,char * const argv []),所以不是用来读取整个** argv的execvp? int mySystem(char* str[]){ wordexp_t p;

    1热度

    2回答

    我想制作一个模仿Linux shell的程序。 ,它运行在两种模式下 (1)交互模式(无参数) 等待子进程。一次执行一个命令。 (2)批模式(给定A文件) 不要等待。尝试并行执行这些命令。 我的代码很长,所以我决定制作一个示例程序来解决(关注)我面临的问题。 #include <stdio.h> #include <unistd.h> #include <sys/types.h> #incl