我需要帮助,我正在尝试在minix3中创建一个shell,我想创建自己的" ls"命令,所以目前我正在使用execvp
命令。唯一的问题是我想在一行上输出所有内容,而不是在他们自己的行上的每个目录。我一直试图让这一点正确一段时间,我似乎无法把它弄好。我不确定这是否可行,但是如何在不使用system()
的情况下获得最终产品的任何建议将不胜感激!
我的代码示例:
char* arg[] = {"ls", "-1", NULL};
execvp(arg[0], arg);
先谢谢你了!
答案 0 :(得分:0)
最简单的可能是将ls
的输出传递给tr
。您可以使用复杂的代码来设置管道,或者您可以使用脚本调用sh
:
char const* args[] = {"sh", "-c", "ls | tr '\n' ' '", NULL};
execvp(args[0], args);
如果条目之间的逗号没问题,请将-m
标记传递给ls
:
char const* args[] = {"ls", "-m", NULL};
execvp(args[0], args);