首页 > 解决方案 > 在 Go 中获取给定文件描述符的文件大小

问题描述

如果给定路径,我将使用它来获取文件大小

file, _ := os.Open(path)
fi, _ := file.Stat()
fsuze := fi.Size()

但如果给定fd,我怎样才能得到文件大小?在 C 中有这样的 Go 方法吗:

lseek(fd, 0, SEEK_END)

标签: filegooperating-system

解决方案


您可以使用该函数*os.File从文件描述符创建一个新的。os.NewFile

您可以使用与 C 中完全相同的方式来执行此操作Seek

offset, err := f.Seek(0, os.SEEK_END)

但是既然你已经有了,即使它是直接从文件描述符派生的*os.File,你也可以调用。Stat


推荐阅读