如何知道 ls -l 输出中每个元素的类型?

如何知道 ls -l 输出中每个元素的类型?

我正在检查 的输出中每个字段到底是什么ls -l。中的例子 这个帖子解决了我的问题。但我再次想知道每个字段是什么类型。字符串很明显。但数字又如何呢?比如10, 2048, 它们是整数还是字符串?有什么方法可以检查每个字段的类型吗?

答案1

终端中的命令生成的文本是文本字符串。在终端中查看原始二进制数据,而不将其转换为某种文本表示形式,通常会产生“乱码输出”(例如,在cat压缩文件上运行时),并且在某些情况下甚至可能使终端处于不可用状态。

输出中的数字ls -l是文本字符串。

要将文本作为整数读取到例如 C 程序中,程序必须将它们作为文本字符串读取,然后使用例如将它们转换为整数strtol(),或者使用scanf()(或等效的)正确的格式字符串。

例如,读取整数的 Shell 工具awk通常已经根据该工具实现的规则在幕后执行此转换。


旁注:AC 程序不应解析 输出中的数字ls -l。它应该在 . 返回的文件上调用stat()或。lstat()readdir()

相关内容