Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# linux中是否有任何系统API提供对文件的原子写入操作_C#_C_Linux_Filesystems_Atomic - Fatal编程技术网

C# linux中是否有任何系统API提供对文件的原子写入操作

C# linux中是否有任何系统API提供对文件的原子写入操作,c#,c,linux,filesystems,atomic,C#,C,Linux,Filesystems,Atomic,其目的是为重要文件提供原子性,例如,如果这些文件正在进行写入操作(例如20 kb),并且在两次断电之间,则不必向原始文件写入任何新数据。因此,我的原始文件将是安全的,不会损坏。这就是我们要做的。但是,这非常昂贵,因为所有数据都必须写入两次 因为它非常昂贵,大多数日志文件系统实际上不记录数据写入,只记录元数据写入。因此,在大多数日志文件系统上,文件系统结构受到保护,不会受到损坏和不一致,但文件内容不会受到影响 支持完整数据日志记录,但默认情况下仅支持元数据日志记录 是日志文件系统的概念扩展,其中只

其目的是为重要文件提供原子性,例如,如果这些文件正在进行写入操作(例如20 kb),并且在两次断电之间,则不必向原始文件写入任何新数据。因此,我的原始文件将是安全的,不会损坏。

这就是我们要做的。但是,这非常昂贵,因为所有数据都必须写入两次

因为它非常昂贵,大多数日志文件系统实际上不记录数据写入,只记录元数据写入。因此,在大多数日志文件系统上,文件系统结构受到保护,不会受到损坏和不一致,但文件内容不会受到影响

支持完整数据日志记录,但默认情况下仅支持元数据日志记录

是日志文件系统的概念扩展,其中只有日志

写时拷贝文件系统提供与日志文件系统相同的保证

并提供与仅元数据日志文件系统相同的保证


当然,带备用电池和电源的磁盘控制器也可能是一个好主意。

是的,那将是一个美好的世界,我们在没有电源的情况下写入或删除文件中的数据。我认为您或您的管理员实际上正在寻找的是UPS不间断电源。没有办法通过软件实现你想要的,这是一个硬件问题。如果主电源关闭,UPS可以短时间供电,并通知服务器关闭,因此,当前运行的进程可以进入安全状态,将数据写入文件并适当地关闭它们。虽然有一些软件方法可以降低损坏风险,但它们仍然依赖于硬件说出真相,而事实往往并非如此