c++ - 在 cpp 中使用 exec() 在其他目录上执行 shell 命令 (ls)
问题描述
我想使用 exec 系统调用来计算主目录中的目录/文件。我无法理解的是我在哪里可以指定 ls 应该应用在哪个目录上。这是我尝试过的:
cout<<execle("/bin/ls","bin/ls",NULL);
它打印当前目录中的文件。我将路径作为环境变量传递,但这也无济于事。也许那是用来指定在哪里可以找到传递给 execl 的可执行文件,
char *env2[]={"PATH=/home/username", NULL};
cout<<execle("/bin/ls","bin/ls",NULL, env2);
我虽然在调用 execl 之前更改目录会有所帮助,但是找不到简单的方法来做到这一点。我如何指定应该执行 ls 的目录。注意:我使用的是 ubuntu linux
解决方案
尝试使用 execvp()
cout << execvp("ls", ["ls", "/home/username"])
execvp 将您尝试执行的命令作为其参数,第二个参数是一个列表,包括该命令和为正在执行的命令提供的参数列表。
推荐阅读
- c# - 将可空引用类型与泛型类型一起使用时收到警告
- jquery-ui - 当父母关闭时关闭所有孩子
- node.js - “ng --version” module.js:471 抛出错误
- c++ - 字符串比较未返回正确结果
- python - 避免在python中输入javascript鸭子检测到硒?
- python - RegEx - 在两个分隔符之间获取多行内容
- python - “predict_classes() 接受 2 到 4 个位置参数,但给出了 5 个”错误
- java - Spring创建原型bean两次?
- actions-on-google - 通过 Actions SDK 对 Google 动态 NO_INPUT 响应的操作
- python - 附加到列表复制最后一项python