Linux 文件命令使用哪个系统调用?
Which system call does the Linux file command use?
你知道 Linux file
命令使用哪个系统调用来确定文件类型吗?
在命令行上,如果你使用文件命令,它会回复类似这样的内容:
dev-1:~/$ file download.png
download.png: PNG image data, 724x 724, 8-bit/color RGBA, non-interlaced
这是一个完整的程序吗?或者是否有映射到该功能的系统调用?
嗨,我为您提供了一些有用的 Linux 文件命令,希望它在下面有用
file bobs_file.txt
输出=bobs_file.txt:ASCII
file textfile.tar
输出=textfile.tar:POSIXtar存档(GNU)
file Picture/
输出=图片/:目录
file iuk.png
output = iuk.png: PNG图像数据,213 x 213, 8-bit/color RGB, non-interlaced
根据@stark 的建议,我 运行 Linux strace 命令如下所示:
$ strace file download.png
返回了很多信息(很多系统调用),但我仔细挑选了一下,找到了我要找的核心项目:
fstat(3, {st_mode=
我搜索过 found a man page for fstat:
These functions [lstat, fstatat] return information about a file, in the buffer pointed
to by statbuf.
还有一个(或多个)调用 pread64() 从文件描述符中读取。
你知道 Linux file
命令使用哪个系统调用来确定文件类型吗?
在命令行上,如果你使用文件命令,它会回复类似这样的内容:
dev-1:~/$ file download.png
download.png: PNG image data, 724x 724, 8-bit/color RGBA, non-interlaced
这是一个完整的程序吗?或者是否有映射到该功能的系统调用?
嗨,我为您提供了一些有用的 Linux 文件命令,希望它在下面有用
file bobs_file.txt
输出=bobs_file.txt:ASCII
file textfile.tar
输出=textfile.tar:POSIXtar存档(GNU)
file Picture/
输出=图片/:目录
file iuk.png
output = iuk.png: PNG图像数据,213 x 213, 8-bit/color RGB, non-interlaced
根据@stark 的建议,我 运行 Linux strace 命令如下所示:
$ strace file download.png
返回了很多信息(很多系统调用),但我仔细挑选了一下,找到了我要找的核心项目:
fstat(3, {st_mode=
我搜索过 found a man page for fstat:
These functions [lstat, fstatat] return information about a file, in the buffer pointed to by statbuf.
还有一个(或多个)调用 pread64() 从文件描述符中读取。