gpt4 book ai didi

c++ - 检测文件描述符何时来自/proc

转载 作者:行者123 更新时间:2023-11-30 17:23:58 24 4
gpt4 key购买 nike

无法以正常方式读取/proc 目录中的文件。特别是,fstat 会告诉您即使有内容,文件大小也为零。

这对我的一些文件读取代码造成了严重破坏,这些代码在读取之前首先询问文件大小。本质上,您必须从/proc 读取文件,就像读取管道或 stdin 一样 - 读取直到获得 EOF。

但是,如何检测文件描述符或 FILE* 是否来自/proc?

在执行 fstat 后查看 stat 的内容,我没有看到任何明确的方法来检测这一点。 st_mode、所有权或权限中没有任何内容可以明确告诉我它来自/proc。

设备 ID 看起来很有希望 - 在我尝试过的系统上,它返回为 3,其中常规磁盘具有更高的数字(例如 801)。但它总是保证是 3 吗?我找不到官方支持的方式。

在 C/C++ 中寻找答案

最佳答案

找到了好的答案。

#include <sys/statfs.h>
#include <linux/magic.h>

struct statfs fs;
fstatfs( fileno( file ), &fs );
bool isProc = ( fs.f_type == PROC_SUPER_MAGIC ) ? true : false;

关于c++ - 检测文件描述符何时来自/proc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27364439/

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