gpt4 book ai didi

linux - 给定文件在 Linux 上的路径,如何判断文件是否在 tmpfs 上?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:05 26 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但假设我得到了一个文件路径,并且我想知道它是否指向 tmpfs 上的一个文件(也就是说,它是一个内存中的文件)。我怎样才能只使用 Linux 系统调用来做到这一点? (也就是说,我不能去shell。)

最佳答案

使用 statfs 系统调用并查看返回的 f_type 字段是否为 TMPFS_MAGIC

这是一个演示此操作的小实用程序:

#include <sys/vfs.h>                                                         
#include <linux/magic.h>
#include <stdio.h>

int main(int argc, char** argv) {
struct statfs info;
statfs(argv[1], &info);

if (info.f_type == TMPFS_MAGIC) {
printf("It's tmpfs\n");
return 0;
} else {
printf("It's not tmpfs\n");
return 1;
}
}

例子:

$ ./isittmpfs /etc/passwd
It's not tmpfs

$ ./isittmpfs /dev/shm/pulse-shm-1358569836
It's tmpfs

(注意:这只是一个示例,说明如何通过系统调用确定文件是否在 tmpfs 上。即使示例代码是从 shell 调用的,这个答案建议掉落到 shell )

关于linux - 给定文件在 Linux 上的路径,如何判断文件是否在 tmpfs 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com