问题标签 [fstat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使用 boost 获取文件的所有者和组
我想使用 boost::filesystem 从文件中获取所有者和组,但从未找到任何方法。
我可以获得文件的权限,但由于我不知道文件的所有者,这并不意味着什么。
我找到了 posix fstat 函数,但我还是想使用 boost 或其他 C++ 库而不是 C 函数。
c - 使用 fstat 确定文件类型
所以,我有一个任务,基本上是比较系统调用与库函数的速度的练习。我们正在对通过标准输入从文件中获取的字符串进行排序。我们应该确定该文件是否是常规文件或不使用 fstat。我已经阅读了手册页,虽然我知道它的作用,但我在弄清楚如何使用它时遇到了问题。
我知道它返回一个 stat 结构,所以我可以直接创建一个变量并像这样存储它吗?前任:
这就是你获得结构的方式吗?是不是退回到别的地方了?我需要访问 off_t st_size 变量,所以我知道文件有多少字节。可以将其转换为int吗?
此外,显然您可以使用 st_mode 字段来检查文件是否是常规文件(使用宏 S_ISREG),但是......如何?它是返回真还是假?这很烦人,因为我可以找到所有这些文档,告诉我这些字段是什么,但不知道如何使用它们。
如果我有一个常规文件,我应该在任何函数调用之前分配足够的内存来存储它。如果不是,那么我在阅读时重新分配内存。我已经完成了第二部分,我只是不知道如何正确使用 fstat。
c - c 使用 fstat 问题比较文件大小
我比较 2 个文件大小的代码似乎表现得好像keyfile
> sourcefile
。下面的代码中是否缺少某些内容,我可以更改什么?我用于测试的两个文件是 3kb 密钥文件和 14kb 源文件,它们应该会激活if
下面提供的最后一条语句。
c - fstat() st_nlink=1 即使在链接更多文件之后
输出: nlinks before = 1 nlinks after = 1
为什么 st_nlink 总是 = 1 即使文件至少有 3 个链接?另外,如果我改用,lstat
我会得到 3 个 st_nlinks。为什么?
c - 在调用 fstat 之前调用 fsync 的任何理由
我有一段遗留代码在调用以确定目标文件的文件大小fsync
之前发出调用。fstat
(特别是代码只是从 stat 结构中访问 st_size 。)
看过文档后,我不认为这是一个必要的电话,但我想要专家的意见。
c - 使用旧版 glibc 在 Linux 中监视文件更改
我需要使用文件描述符监视常规文件上的事件。我正在使用 CentOS 4.1 和内核版本 2.6.18.128 的机器上工作。
在意识到使用 无法监视常规文件后epoll
,我发现使用 可以完成此任务inotify
。但是,我在其他地方读到,所需的库接口inotify
已在 2.4 版中添加到 glibc,并且我的机器安装了 2.3.4 版。所以我的内核通过 not glibc 支持 inotify。不幸的是,我无法将glibc 更新到较新的版本,因为它会破坏项目的某些其他部分。
所以我的问题是:
- 我还能用它
inotify
来监控常规文件吗?我可以获取更新版本的 glibc 并将其放在本地文件夹(相对于我的代码),在我的 Makefile 中包含路径并使用与关联的调用inotify
吗?如果是这样,我会遇到什么样的问题? - 另一种方法是使用
fstat
,通过跟踪结构的st_mtime
成员struct stat
。采取这条路线有什么注意事项吗?
如果我的问题表明对这些概念缺乏理解,请在我刚开始使用它们时多多包涵。
c - Linux 描述符类型
如何获取描述符类型?我正在使用 epoll 来监视许多描述符,例如套接字、计时器和信号。我看到使用 fstat 是可能的,但该模式只说明了套接字和管道。fstat 联机帮助页。是否有识别描述符的特殊功能?
c - fstat 返回 0 文件大小
我以为我理解 fstat,我错了。
我需要知道文件的大小,然后从文件中读取。
fileN
具有文件的路径和文件的名称。它看起来像这样。0.txt
为什么我需要fd = open(fileN, "r");
使用 fstat?感觉就像我打开文件两次。
如果 fileStat 是一个结构,为什么我要使用fileStat.st_size
而不是fileStat->st_size
像我在创建自己的结构时那样使用?示例:myString->characters
;
为什么上面的代码在printf
执行时会打印 0?是的,文件的大小大于 0,我有正确的文件名和路径。
上面的所有代码都是我对在 Google 上搜索并与我的试错实现混合的代码的解释。这就是为什么我有这么多问题。
编辑:解决方案:open() 被调用错误并影响文件。
c++ - 如何检查zip文件或压缩文件是否存在?
如果我不知道一个文件是否存在。如果它存在,我将根据该文件中的内容做一些事情。该文件可以是 .txt 或 .gz 格式,该文件也可以不存在。下面是我的代码:
我想检查一个具有相同名称的文件和一个必须具有的文件,例如 hello.abc 但我要检查的文件可能是 hello.abc 或 hello.gz 甚至不存在。如果我按照上面的方式进行当文件 hello.txt 或 hello.gz 完全不存在时出现错误。我该如何解决?