问题标签 [stat]

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.

0 投票
2 回答
18358 浏览

c - 如何从用户 ID 中检索用户名

我在 Unix 上实现(ls)命令,同时从一本书中学习。在我使用(-l) 标志执行(ls)命令的编码部分,我看到我必须提示文件的用户名和组名。到目前为止,我有来自以下几行的用户和组 ID:

在 Unix 上的默认(ls)命令中,文件的信息以显示用户名而不是用户 ID 的方式打印。

谁能帮我找到正确的方法来从他们的 ID 中检索用户名和组名?

0 投票
2 回答
65 浏览

python - 哪些信息将路径中的文件数据标识为未更改?

我想记住在给定路径上对文件数据进行操作的函数的结果。如何确定文件数据自上次处理后是否已更改?

我正在考虑将包含st_dev,st_inost_mtime的键映射到结果。这足够了吗?

0 投票
2 回答
3261 浏览

c - C stat 结构没有 st_ctime 字段,但只有 st_ctim

我现在已经用谷歌搜索了大约两个小时,但我找不到任何有帮助的答案。

手册页中指定的“stat”的定义表明存在 st_ctime 字段。

但是,即使我使用的是 gcc(应该按照标准运行),这对我的系统来说似乎并不正确。

事实上,所有时间字段(atime、mtime、ctime)都丢失了,因此该结构包含一些 atim、mtim 和 ctim 值,它们返回 timespec 而不是所需的 time_t 值。

现在我的问题:

  1. 为什么会这样?也许我包含了错误的标题,但我确定它一定是 sys/stat.h。
  2. 我没有找到太多关于 timespec 的信息,它是什么以及为什么会返回这里?
  3. 即使我找到了解决方法,它对我有帮助还是任何其他系统无法执行我的代码?

我正在使用 Ubuntu 11.10 和 gcc 4.6.1。

我的代码(部分):

如果您能对此提供帮助,我会非常高兴,我真的不知道为什么我不能使用我的结构的 st_ctime 字段进行编译,并且像往常一样 gcc 在谈论错误时没有太大帮助; -)

可能它与#include 问题有关,但我无法确定是什么。

0 投票
2 回答
2010 浏览

c - STAT 块大小/使用的块

我有一个令我困惑的问题,我的任务是解决碎片化问题。

我在某些地方读到 st_blksize 是文件系统的一般块大小,在这种情况下是文件系统,4096但该文件适合3 blocks10520 / 51220.5意味着有3.5 blocks未使用的空间,即使它已分配。这是否意味着1792此文件中有未使用的字节(碎片)?

正如我所提到的,我对此进行了相当多的阅读并阅读了很多相互矛盾的文字,希望有人能一劳永逸地解决这个问题!

0 投票
2 回答
695 浏览

c - MINIX内部碎片2

我正在用 C 语言编写一些软件,它递归地列出给定目录中的所有文件,现在我需要解决内部碎片问题。

我花了很长时间研究这个,发现ext2上的内部碎片只发生在最后一个块中。我知道从理论上的 inode 编号你应该能够获得第一个和最后一个块地址,但我不知道如何。

我已经研究过stat()fcntl()以及各种方式。如何从 inode 号中获取最后一个块地址?

我还发现,一旦我有了最后一个块的地址,我就可以测试该块中有多少可用空间,这会给我内部碎片。

我知道有一个get_inode和一个get_block命令,但除此之外一无所知!

0 投票
2 回答
1204 浏览

c - C stat() 忽略文件

我在 C 中的 stat 函数有问题。我的应用程序必须列出两个目录中的所有文件(第二个目录尚未实现)。当 dir1 设置为“.”时 对于当前目录,它列出了所有文件。如果我将其更改为所需的目录,它只会列出一个文件。

运行程序的结果如下:

这是 ls 在它正在读取的目录中的结果:

在此先感谢,汤姆。

0 投票
1 回答
2252 浏览

c - fuse 文件系统无法更改 getattr 函数中 struct stat *stbuf 的值?

问题解决了! 感谢@basile-starynkevitch,我发现struct stat不同文件中的大小不同!

<sys/stat.h>,sizeof(struct stat)是 88 字节,但使用 fuse 的库(我猜是由于-D_FILE_OFFSET_BITS=64标志),这是 96 字节。

因此,当我将 fuse lib 添加到远程服务器(-D_FILE_OFFSET_BITS=64 /usr/local/lib/libfuse.so /usr/local/lib/libulockmgr.so向 gcc 添加标志)时,我的程序运行正常!

感谢您的帮助!


我正在做一些关于保险丝的项目,这让我发疯了。

我从远程服务器发送 struct stat *stbuf 的数据,服务器和客户端的数据都是正确的,但是当我使用 memcpy 将数据复制到 stbuf 时,似乎没有复制任何内容。我也尝试使用 read(socked,stbuf,sizeof(struct stat)); 直接,但这也不起作用。

这是代码......(如果没有这样的文件,远程服务器将 -ENOENT 保存在 st_ino 中)

我从 gdb 获得的数据:

read() 后,在 buf 中获取数据

将数据复制到 stbuf

stbuf 根本没有改变。

谁能给我一些关于这种现象的建议?我做了一些工作,但仍然没有找到解决方案。

0 投票
4 回答
5734 浏览

c - C 编程 - Stat 系统调用 - 错误

我是 C 新手,但尝试了一些系统调用。

我正在编写迭代目录中所有文件并打印当前文件名和大小的程序。我可以让程序打印文件名,但是当我执行 stat 系统调用时它会出错。

这是一些代码:

我有这样描述的结构:

如果我改变:

它仍然进入循环,这让我认为它无法读取文件名,但它在错误语句中打印它没有问题。

有人可以指出我正确的方向吗?谢谢!

Аркадий

0 投票
2 回答
36855 浏览

node.js - 无法理解 fs.stat() 的工作原理

我正在尝试编写一个函数,告诉我某个路径是一个目录。

但是,它从不打印答案。

如果路径名存在 - 它不会调用该函数。如果它不存在,它会生成一个异常:ENOENT not a file or directory. 我不想知道它存在路径名,但我想知道它是否是一个目录。

任何人都可以帮我解决它吗?

0 投票
1 回答
1417 浏览

linux - /proc/pid/stat 文件中的 cstime 错误

stimecstime/proc/pid/stat文件中是如此巨大,没有任何意义。但只是某些进程cstime有时会出现此错误。如下:

您可以看到stimeproc 4815, nscd, is 1844674407359, equal to 213503-23:34:33, 但刚刚运行1-01:20:02.

另一个问题过程有错误cstime如下:

一个bash fork a sh,它分叉一个睡眠。

所以你可以看到 proc bash 中的 cstime 是 1844674407368,比它的孩子的总 cpu 时间大得多。

我的服务器有一个 Intel(R) Xeon(R) CPU E5620 @ 2.40GHz,4 核 8 线程。操作系统为 Suse Linux Enterprise Server SP1 x86_64,如下

那么是内核的问题吗?有人可以帮忙解决吗?