[英]How to control the terminal ouput format in linux?
我的任務是編寫另一個小版本的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
的數組,而filenames
是該數組中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
可以填充字符串,這就是我們在這里所做的。 首先獲取最長的文件名,然后使用它來填充其余的文件名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.