gpt4 book ai didi

c - linux下如何控制终端输出格式?

转载 作者:行者123 更新时间:2023-11-30 17:27:06 25 4
gpt4 key购买 nike

我的任务是编写另一个小版本的 LS 命令。我成功读取目录并将文件名存储到排序数组中。我的问题是如何以列格式打印它们。以及如何使用系统调用 ioctl() 来帮助我处理格式?

   $ ls
file.txt file2.txt file5.txt file8.txt
file0.txt file3.txt file6.txt file9.txt
file1.txt file4.txt file7.txt

最佳答案

假设 filenames 是一个包含带有文件名的 C 字符串的数组,filenames_size 是该数组中 C 字符串的数量。

char **filenames;
size_t filenames_size;
size_t filenames_len = 0;
for (size_t i = 0; i < filenames_size; ++i) {
size_t len = strlen(filenames[i]);
if (filenames_len < len) {
filenames_len = len;
}
}
for (size_t i = 0; i < filenames_size; ++i) {
printf("rwxrwxrwx %-*s 10KB\n", filenames_len, filenames[i]);
}

printf 可以填充字符串,这就是我们在这里所做的。首先获取最长的文件名,然后用它来填充其余部分。

关于c - linux下如何控制终端输出格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26509428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com