簡體   English   中英

如何在Linux中控制終端輸出格式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM