为啥子进程没执行成功啊*arr1不是等价于ls吗就算传地址比如execvp(“arr1[1]”,“”,NULL)也不成功
![](https://profile-avatar.csdnimg.cn/a011d0908e98402895991216401d63d4_2301_77331351.jpg!4)
为啥子进程没执行成功啊*arr1不是等价于ls吗
为啥子进程没执行成功啊*arr1不是等价于ls吗就算传地址比如execvp(“arr1[1]”,“”,NULL)也不成功
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
【以下回答由 GPT 生成】
问题首先涉及到了使用
execvp
函数来执行一个子进程。execvp
函数用于在当前进程中执行一个可执行文件,并可以传递命令行参数。在你的代码中,execvp(arr1[0], arr1)
尝试执行arr1
数组中第一个元素所指定的可执行文件,并将arr1
数组用作命令行参数。然而,问题出现在你对
*arr1
的理解上。*arr1
并不等价于ls
命令,因为arr1
是一个字符指针数组,它指向一个字符串数组。而ls
命令是一个可执行文件,需要通过execvp
函数传递一个指向可执行文件路径的字符串指针作为第一个参数。解决这个问题的方法是将
arr1
数组的第一个元素设置为指向ls
命令的字符串指针,如下所示:char* arr1[] = {"ls", NULL}; execvp(arr1[0], arr1);
这样做将会成功执行
ls
命令并在子进程中显示目录内容。希望这个解答能够帮助你理解问题的原因并解决代码中的错误。如果还有其他问题,请随时提问。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决评论 打赏 举报无用 1
悬赏问题
- ¥15 程序实在不会写,要秃了
- ¥15 pycharm导入不了自己的包
- ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
- ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
- ¥15 关于R语言单因素与多因素线性回归的平均值
- ¥15 服务器清除BIOS之后引导不了
- ¥15 CPLEX用OPL编写的混合整数线性优化问题。
- ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
- ¥15 前端预览docx文件,文件从后端传送过来。
- ¥15 层次聚类和蛋白质相似度