当前位置: 首页 > 面试题库 >

如何在Go中获取文件的组ID(GID)?

后易安
2023-03-14
问题内容

os.Stat()返回一个FileInfo对象,该对象的Sys()方法返回一个Interface{}没有方法的。

虽然我能够fmt.Printf()“看到”“ Gid”,但无法以编程方式访问“ Gid”。

如何在此处检索文件的“ Gid”?

file_info, _ := os.Stat(abspath)
file_sys := file_info.Sys()
fmt.Printf("File Sys() is: %+v", file_sys)

印刷品:

File Sys() is: &{Dev:31 Ino:5031364 Nlink:1 Mode:33060 Uid:1616 Gid:31 X__pad0:0 Rdev:0 Size:32 Blksize:32768 Blocks:0 Atim:{Sec:1564005258 Nsec:862700000} Mtim:{Sec:1563993023 Nsec:892256000} Ctim:{Sec:1563993023 Nsec:893251000} X__unused:[0 0 0]}

注意:我不需要可移植的解决方案,它只需要在Linux上工作即可(值得注意的Sys()是,由于众所周知的问题)。


问题答案:

reflect模块显示Sys()的return
的数据类型为*syscall.Stat_t,因此这似乎可以将文件的Gid作为字符串获取:

file_info, _ := os.Stat(abspath)
file_sys := file_info.Sys()
file_gid := fmt.Sprint(file_sys.(*syscall.Stat_t).Gid)

如果有更好的方法,请告诉我。



 类似资料:
  • 问题内容: 我查了 golang.org/pkg/os/#File,但还是不知道。似乎无法获取文件长度,我错过了什么吗? 如何在Go中获取文件长度? 问题答案: 返回一个值,该值又具有一个方法。因此,给定一个文件,代码将类似于

  • 问题内容: 如何获得对文件的专有读取访问权?我已经尝试过docs中的文档,但是我仍然能够在记事本中打开文件并进行编辑。我想拒绝任何其他进程具有读写权限,而第一个进程没有明确关闭它。在.NET中,我可以执行以下操作: 我该怎么办? 问题答案: 我终于找到了可以锁定文件的go包。 这是仓库: https : //github.com/juju/fslock 这个包裹完全按照它说的去做 fslock提供

  • 问题内容: 给出以下示例: 我想在getter方法中获取调用组件的,以便可以通过键从属性文件返回大小。 我该如何实现? 问题答案: 从JSF 2.0开始,组件范围中有了一个新的隐式EL变量:它引用当前实例。在其getter方法中,您需要一种。 因此,您可以执行以下操作: 与 另外,您也可以制作一个, 以便执行以下操作: (每当您想将参数传递给方法时,都必须在EL中使用完整的方法名称而不是属性名称,

  • 我想从Moodle获得一个组/分组ID,用于课程UI的自定义。我需要向特定的组/分组显示资源。我已经安排好了,穆德尔。我登录是因为不同的用户只能访问分配给该用户组的资源。 我的主题有一个自定义的侧边栏菜单,其中链接到该课程的页面、作业和所有其他资源给用户。我需要使用PHP if/else语句在菜单中向用户显示正确的资源,这取决于group/grouping id的值。我在moodle.com上找到

  • 问题内容: 假设我有以下长度为3的整数数组: 然后我只抓了前两个项目 在这两种情况下,调用numSlice和nums都会产生3,分别产生2和3。 如果我随后附加到该slice(),则基础数组()现在为。两者的值均保持为3,因为切片的基础数组相同,并且切片的len现在为3。 但是,如果我再次追加到该片(),则该片的基础数组必须更改- 我们看到的情况是,现在numSlice增加了一倍,而len现在是4

  • 问题内容: 我想获取不同idfeedback的行ID 结果 所需结果 问题答案: 试试这个: