如何使用execvp实现命令ls -l?

Sheng

我尝试ls -l使用实现命令execvp我有代码

execvp("ls",&argv[0]);  

工作很好,但我用

execvp("ls -l",&argv[0]);

不起作用

库尔特·斯图斯曼

第一个参数必须execvp()是您要运行的二进制名称。您不能只在其中添加其他参数。参数列表来自&argv[0]您需要创建一个新数组来插入参数。像这样的东西:

char** new_args = malloc((argc + 1) * sizeof(char*));
new_args[0] = argv[0];
new_args[1] = "-l";
memcpy(&new_args[2], &argv[1], (argc - 1) * sizeof(char*));
execvp("ls", new_args);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章