这周要写一个小项目,利用《linux C 编程实战》第6章的内容实现一个简单的 ls 命令,写的时候出现很多问题,现在将问题总结一下。 要实现的ls命令需要实现 -l, -a , -A 等参数。 我们在终端测试一下系统的ls命令: 可以发现系统的ls可以根据终端的宽度来调整输出列数,而不至于输出的内容由于终端大小的限制显示不全。 如果想要实现类似的功能,首先需要获取终端的宽度,然后计算输出文件列表的最大列数,最后按列将文件输出到屏幕上。 终端宽度的获取 查了很多,发现书上提到的 int ioctl(int fd, int cmd, ...)可以实现这个功能, 先放出代码: ...