我有一个简短的 Python 代码 (main.py): 当我运行它时,我可以看到os.getpid()和os.execvp命令的终端输出,但看不到print("hello") 。 但是,当我有另一个文件(another.py)时,其内容为: 然后将 main.py 更改为: 然后我可以看到os. ...
我有一个简短的 Python 代码 (main.py): 当我运行它时,我可以看到os.getpid()和os.execvp命令的终端输出,但看不到print("hello") 。 但是,当我有另一个文件(another.py)时,其内容为: 然后将 main.py 更改为: 然后我可以看到os. ...
所以我试图了解 fork exec 和等待的实现。 该程序应多次执行给定程序,每次使用不同的命令行 arguments。 第一个命令行参数是要重复执行的程序的名称。 对于每个其他命令行参数,以该参数作为唯一参数运行程序。 在运行下一个子进程之前等待每个子进程完成。 所以理想情况下,如果我运行./ma ...
I want to pass a heap based array that contains sub arrays for arguments to a function that uses execvp , why a heap based array, because I splitting ...
我试图运行一个程序,它使用容器和 execvp() 函数。 当我尝试在 CLion 中运行时,程序运行良好,但是当我在我的 shell 中运行时,它不起作用,即使我使用 CLION 的编译文件也是如此。 它说:“没有这样的文件或目录”。 任何想法? 我使用的参数在两个选项中看起来都不错。 ...
我尝试用 C 语言编写一个程序,该程序在输入中采用简单的 Linux 命令,如“ls /home”。 该命令在带有“execvp”的子进程中执行,并发送到父进程以显示在屏幕上。 我的问题是程序正在运行但什么也不显示,也不返回提示。 我必须用“ctrl + C”退出。 是 while 循环中的问题还是 ...
我是 C 的新手,但目前正在创建一个 C 程序作为 shell 接口。 它应该接受命令,然后在单独的进程中执行每个命令。 我目前正试图让 C 识别它是一个命令。 我不确定该怎么做,而且似乎找不到任何有用的例子。 这是我的代码,它说一切都不是有效的命令(“no cmd”)。 有谁知道为什么会发生这种 ...
在我的代码中,我尝试使用 function execvp() 来执行我在 shell 中获得的命令,但是当我将 function 的第一个参数替换为(例如)“ps “它工作正常但是当它是(命令)时它不起作用,我已经通过从输入行获取命令后打印它来检查命令是否正常并且它是一个没有问题的好字符串,但是 ...
我正在尝试使用execvp()来执行子进程,但它给了我以下错误并且我无法修复它有人可以指出我做错了什么吗? 我的代码: 我的变暖/错误: 预期结果:当我运行其他命令 (execlp) 时,它会给出以下结果: execlp()的问题是它不执行ls -l ,我希望能够使用ls 、 ps & ...
最近一直在想,为什么执行完execvp后,还需要在child执行完后使用exit。 欢迎深入解释。 ...
我正在尝试在 c 中构建 shell。 我不断收到诸如“无效参数”或“没有这样的文件或目录”之类的错误。 我在 WSL2 上。 execv() 调用的文件的正确路径是否有可能受到 WSL2 后面存在 windows 文件系统这一事实的影响? 因为如果不是正确的 bin 路径是什么? 为什么“~/ ...
我想执行 execvp,或者真正适用于这个的任何一个,但只在给定的文件上运行它。 为了解释我要做什么,我试图在满足给定其他参数的文件上运行它。 例如: (./a.out -s 1024 -e "ls -l") -s 如果文件大小 >= 1024 然后显示该文件,然后对该文件执行命令“ls -l ...
我正在尝试使用 execvp 运行 grep 命令。 我必须将 output 保存到 output 文件中,例如 output.txt。 我试过的代码如下: 当我运行这段代码时,终端上的 output 如下: ...
我正在编写一个 python 脚本,用于检查是否有可用的新版本,它会自行删除、复制新版本并使用相同的参数重新运行。 该代码适用于 MacOs (Linux): 在 Windows 中它似乎也可以工作,但它一直停留在 cmd 中,直到您按“Enter”。 我也尝试使用Popen并且它在 Wind ...
在从 Spotlight 或 Applications 文件夹启动应用程序之前,我无法运行一些 C 代码。 我想我应该能够用我的代码创建一个可执行文件,在所有计算完成后我调用execvp()来运行原始应用程序的可执行文件,然后它将替换当前进程。 我编译了 .c 文件,并为其提供了原始应用程序的可执行 ...
我正在处理一个 Python 脚本,经过一些准备工作后,它会启动ssh 。 我的脚本实际上是一个小型 CLI 工具。 在类 Unix 系统上,在其生命周期结束时,Python 脚本将自身替换为ssh客户端,因此用户现在可以与远程机器上的ssh等命令直接交互:os.execvpe('ssh', [' ...
如何使用 execvp 系统调用执行 ls>file.txt? 我正在尝试使用 execvp 系统调用执行不同的命令。 我想知道如何将 ls>file.txt 传递给 execvp ...
所以我试图从标准输入中读取,然后准备好输入,以便稍后可以在 execvp() 中使用它。 我在这里实现的基本上是一些终端命令的 pipe。 这是我的代码示例的运行方式。 输入: ls -s1 排序 -n output: 命令[0]="ls" 命令[1]="-s1" commands2[0]= ...
我正在尝试从标准输入中读取并使用execvp()中的输入。 目前我收到许多警告,例如警告:赋值使 integer 从没有强制转换的指针 [-Wint-conversion] commands[i]=NULL; 警告:传递 'execvp' 的参数 1 使指针来自 integer 没有强制转换 [-W ...
我目前正在做一个项目,我必须创建一个 unix shell。 我的 function 出现问题,我在其中执行“ls”或“wc”等命令。 我的代码正确执行 execvp 并将其通过管道传送到 output 但之后,它一直输入一个空输入,我可以停止它的唯一方法是手动退出程序。 我认为这与我没有以正确的顺 ...
我对子进程的行为有疑问。 这个测试程序的目的是运行 Linux 命令echo Hello | wc echo Hello | wc使用管道。 我的命令不起作用,结果是调用了错误的 c 字符串。 预期的 output 为: 但是,我得到: 当我注释掉 execvp() 时,我只得到预期的 outpu ...