execvp(),无法直接返回命令行
execvp(), can't return to command line directly
我正在玩execvp(),发现了一个有趣的东西,首先是代码。使用命名空间标准;
#include <iostream>
#include <unistd.h>
int main(){
char *argv[3];
int pid = fork();
if (pid == 0){
argv[0] = "ls";
argv[1] = "-l";
argv[2] = NULL;
execvp("ls", argv);
}
}
这是一个简单的fork + execvp问题,但我发现在"ls"成功执行后,我将不得不按Enter键才能返回命令行(shell)。
有谁知道我该怎么做,以便在 execvp("ls") 之后我可以回到 shell 而不会点击我的"输入"?
您的主程序在ls
完成之前退出。到 ls
完成时,其输出已遮挡 shell 提示符。
您可以使用以下任一方法解决此问题:
- 在
if
的右大括号后添加else wait(0);
。 - 删除对
fork()
的呼叫。
相关文章:
- 从命令行c++发送文本文件名
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 数组长度,为什么从命令行获取时不能使用它?
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 通过 Openssl 命令行加密,通过 c++ 解密
- CMake "--target install"无需"--build"命令行
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 使用 C++ 将命令行参数拆分为参数/向量
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 如何在OMNET++中添加专门的命令行参数?
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- read() 从命令行返回 EISDIR 错误
- Opencv,命令行 collect2 中缺少 DSO:错误:ld 返回 1 个退出状态
- C++带有命令行参数的程序返回错误的答案
- 使用strtok函数打印命令行参数标记.如何使用此函数返回指向指针的指针
- execvp(),无法直接返回命令行