Articles of 文件系统

在Windows中识别文件types

Linux操作系统通过查看标题开始处的幻数来识别文件。 窗户如何做到这一点? 它是否也有某种魔术数字机制,还是只依赖文件扩展名?

如何查看是否对文件或文件夹select“包含可inheritance的权限”?

我在C#编写一个小实用程序,以确保指定的文件夹及其所有内容具有适当的访问权限(我想授予Authenticated Users组完全访问权限)。 下面的代码似乎正常工作更新顶级文件夹的ACL(访问控制列表): SecurityIdentifier allUsers = new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null); InheritanceFlags iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; FileSystemAccessRule newRule = new FileSystemAccessRule(allUsers, FileSystemRights.FullControl, iFlags, PropagationFlags.None, AccessControlType.Allow); DirectoryInfo info = new DirectoryInfo(folderPath); DirectorySecurity security = info.GetAccessControl(); security.AddAccessRule(newRule); info.SetAccessControl(security); 但是,我注意到,这个新的访问规则不会传播到在其安全属性中未选中“包含可inheritance权限…”选项的子文件夹。 这只是有道理的。 所以,我想要做的是打开任何这样的子文件夹的安全权限inheritance。 我的挖掘发现了ObjectSecurity.SetAccessRuleProtection方法应该是我需要的一半。 但是,在已经inheritance父类的DACL的对象上盲目地使用上述方法似乎是草率的。 因此,我想确定哪些对象的权限inheritanceclosures,但我似乎无法find相应的方法或返回此信息的属性。 有一个吗? 我在这里错过了什么?

如何检查一个文件是否存在c

我有核心文件生成与附加到其名称的PID或有时只有名称的核心。 我需要检查一个文件是否以名称core.pid或core存在。 我已经尝试使用stat() ,我使用pathstring作为/tmp/core* ,但失败。 你能不能让我知道如何解决这个问题。谢谢你的时间。

如何检查块是否存在于一个稀疏文件中(用于简单的写时拷贝)?

如何获得稀疏的块大小,并检查数据是否存在于稀疏文件中的reiserfs / ext3在给定的偏移量? 我想用它来实现使用FUSE的简单写时复制块设备。 或者我应该在一个单独的文件中保留一个位图?

打开文件后,访问时间不会更改

我正在使用stat来获取文件的存取时间(当前date是2013年10月23日) [juan@JN-LNXSVR-02 labfiles]$ stat nursery File: `nursery' Size: 837 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 139539 Links: 1 Access: (0644/-rw-r–r–) Uid: ( 500/ juan) Gid: ( 500/ juan) Access: 2013-10-22 18:03:20.703888346 -0400 Modify: 2013-10-21 16:57:07.801165793 -0400 然后我编辑文件并closures它,不做任何修改,并再次提交stat juan@JN-LNXSVR-02 labfiles]$ vi nursery [juan@JN-LNXSVR-02 labfiles]$ stat nursery File: `nursery' Size: 837 Blocks: 8 […]

总线错误打开和mmap的文件

我想创build一个文件并将其映射到内存中。 我认为我的代码将工作,但是当我运行它时,我得到一个“总线错误”。 我search谷歌,但我不知道如何解决这个问题。 这是我的代码: #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <errno.h> #include <sys/types.h> #include <unistd.h> #include <sys/mman.h> #include <string.h> int main(void) { int file_fd,page_size; char buffer[10]="perfect"; char *map; file_fd=open("/tmp/test.txt",O_RDWR | O_CREAT | O_TRUNC ,(mode_t)0600); if(file_fd == -1) { perror("open"); return 2; } page_size = getpagesize(); map = mmap(0,page_size,PROT_READ | PROT_WRITE,MAP_SHARED,file_fd,page_size); if(map == MAP_FAILED) { […]

系统文件,读写o创build自定义元数据或属性扩展

: 我正在寻找一种方法来从任何文件中读取,写入或创build(自定义)标记,扩展属性或元数据。 没有图书馆和语言c或c ++。 我想我可以与fopen,fread,fwrite,但不是如何访问元数据。 提前致谢,

快速的方法来查找Linux上的一个目录中的文件数量

我正在寻找一种快速的方法来查找Linux上目录中的文件数量。 任何需要线性时间的解决scheme都是不可接受的(比如“ls | wc -l”和类似的东西),因为它需要很长的时间(有数十甚至数亿目录中的文件)。 我确定目录中的文件数量必须作为用于存储目录条目的数据结构的一部分以文件系统结构(inode或许?)的某个简单数字的forms存储 – 我怎样才能达到这个数字? 编辑:文件系统是ext3。 如果没有可移植的方式,我愿意为ext3做一些特定的事情。

如何从ext2 / ext3文件系统的稀疏文件中删除一些块

ext2 / ext3文件系统会在您编写稀疏文件时自动分配块,但是当我不再需要某些块时,我找不到这样做的方法。 感觉就像使用malloc()没有free()。 是否有可能“释放”一些稀疏文件的块? 如果是,怎么样? 不要告诉我把它复制到一个新的文件。 这太无聊了,需要大量的磁盘空间。

FS基于数据库而不使用保险丝

要从单个目录中提供数百万个文件,能够连接到来自数百个端点的驱动器,以及其他一些原因(为了避免基于gluster / nfs /所有fs的networking解决scheme),我想评估制作一个基于MongoDB(或任何其他)的文件系统。 基本上,它像保险丝一样工作,每个文件都保存在mongo网格中。 理论上我是这样做的, mount mongodbfs /mountPoint mongodb://localhost 那么当我说touch /mountPoint/test.txt这个文件被插入到mongodb。 这个FS也会存储uid / gid和perms文件,我们可以向它扔上百个服务器,不需要useradd 。 我不打算包括FS的所有function,只是我们需要的function。 我的问题是,我如何开始寻找资源,书籍,链接,人员,开发人员来帮助我实现这一目标? 至less是一个概念的certificate。 这可行吗? 我应该期待什么作为这样的事业的时间表? 请只考虑gazillion小文件和文件夹。 ps:经过几天的研究,我认为这是我的方向http://www.ibm.com/developerworks/library/l-sc12.html http://www.flipcode.com/archives/Programming_a_Virtual_File_System -Part_I.shtml ps2:我知道这项工作的难度。 然而,我们愿意拨出一笔严肃的预算,愿意组build一支严肃的团队,只有在我们确定这不是一个黑洞(因此是一个问题)之后。