execvp

    0热度

    1回答

    我想在C语言中为OS项目构建一个shell。当我做重定向部分时,问题即将到来。 ls工作正常,但是当我做ls > somefile。它给我一个错误“ls:can not access>:没有这样的文件或目录”。这里是我的代码部分 while(in){ argv[c]=strdup(in); \\in is output of strtok applied on input strin

    -1热度

    1回答

    我正在用C++编写一个简单的shell程序。当我将参数传递给execvp时,特别是对于ls命令,我收到ls: cannot access H��p����: Protocol error。其他命令也会出现类似的错误。 我的策略是解析输入到vector<vector<char>然后将其转换为char **。 这里是下面的转换代码: //input is parsed from command-lin

    -1热度

    1回答

    我需要帮助,我正在尝试在minix3中创建一个shell,并且我想创建自己的“ls”命令,所以此刻我正在使用execvp命令。唯一的问题是,我希望它在一行中输出,而不是在他们自己的行上输出每个目录。我一直试图让这个正确的相当一段时间,我似乎不能得到它的权利。我不确定这是否可行,但对于如何实现最终产品而不必使用system()将不胜感激!我的代码的 例子: char* arg[] = {"ls",

    0热度

    1回答

    我正在使用该程序运行shell命令,该命令通过命令行参数使用系统调用execvp()和fork()。这里arglist是一个二维数组,其中包含命令名称及其参数列表。我将命令名称作为第一个参数,将arglist数组作为第二个参数。但它不起作用。 execvp()的手册页说,它会在PATH变量定义的目录中默认查找给定的命令,这就是为什么我只传递命令名。 #include<stdio.h> #incl

    3热度

    1回答

    我试图实现一个shell。我将创建一个hist数组来存储最后的10个命令,我希望能够稍后检索以执行。所以,我试图找到一种方法来获取所有命令行参数,一旦我将它们存储在该hist数组中。 提供了一些代码,gettoks()是获取和分析命令行输入的函数。函数gettoks()返回一个指向字符串的指针数组。每个字符串都是包含字母,数字,。和/的单词,或者是包含其中一个特殊字符的单个字符串:()<> | &

    1热度

    1回答

    我们有两个C++程序,p1和p2。 p2分叉并启动3个子进程,每个子进程通过execvp()调用p2的二进制可执行文件。 如何在调试p1时添加p2的gdb断点并将其调试到p2中?

    1热度

    1回答

    命令我有命令字符串我想执行的数组通过调用execvp(): char* commands[] = ["ls -l", "ps -a", "ps"]; char* command = commands[0]; ... 如何执行与execvp的命令?

    2热度

    1回答

    我试图通过使用StrictHostKeyChecking选项的execvp来运行rsync。 这是我的代码: #include <unistd.h> int main() { char *argv[] = {"rsync", "[email protected]:/tmp", "/home/tmp/", "-e 'ssh -

    1热度

    2回答

    我们知道我们可以在Linux中使用ln file1 file2创建硬链接,这将使得file2成为file1的硬链接。 但是,当我尝试通过使用C程序来做到这一点时,我遇到了问题。以下是C代码。 #include<stdio.h> #include<string.h> #include<unistd.h> int main(int argc, char *argv[]) { if

    0热度

    1回答

    我正在使用execvp来执行一些命令,如ls -l,who,cp -r ./aaa ./bbb等。一切正常,直到我尝试执行相同的命令第二次。例如,我会告诉你我使用的命令:ls -l(一切正常),谁(一切正常),ls -l(坏地址)。这是我的代码: if(strcmp(com_instr, "issuejob") == 0) { pid = fork(); if(pid