<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Атомарная замена &apos;файлов&apos;</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html</link>
    <description>... по-видимому невозможна в Linux.&lt;br&gt;&lt;br&gt;Требования: транзакционность. Два разрешённых состояния:&lt;br&gt;* есть оригинальный файл, нет замены нигде&lt;br&gt;* есть замена в нужном месте, оригинального файла нет&lt;br&gt;&lt;br&gt;Два запрещённых:&lt;br&gt;* есть оригинальный файл, замена насрана где-то&lt;br&gt;* нет ни оригинала, ни замены&lt;br&gt;&lt;br&gt;Обычный файл вы можете создать с флагом O_TMPFILE (временный файл, не пишущийся в журнал), а потом попробовать атомарно заменить через renameat2(..., RENAME_EXCHANGE), но файлы в /proc/self/fd - это симлинки, и renameat2 в них не умеет. Можно, конечно, попробовать поиграться с readlink, но он вам выдаст несуществующий путь.&lt;br&gt;&lt;br&gt;Hardlink - не умеет заменять файлы, флаг AT_REPLACE так и не был добавлен.&lt;br&gt;&lt;br&gt;Директория/симлинк: вы не можете ни создать их с заменой, ни создать их файлы через open с флагом O_TMPFILE, и потом тип поменять. Сами же вызовы для их создания флаги не поддерживают.&lt;br&gt;&lt;br&gt;Складывается впечатление, что так сделано намеренно, чтобы с race conditions дел не иметь.&lt;br&gt;</description>

<item>
    <title>Атомарная замена &apos;файлов&apos; (ACCA)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#9</link>
    <pubDate>Sat, 28 Dec 2024 04:04:29 GMT</pubDate>
    <description>Угу. Всё время, пока оба процесса меряются временем обновления.&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (Tron is Whistling)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#8</link>
    <pubDate>Wed, 25 Dec 2024 09:08:17 GMT</pubDate>
    <description>&quot;Обычный файл вы можете создать с флагом O_TMPFILE (временный файл, не пишущийся в журнал), а потом попробовать атомарно заменить через renameat2&quot;&lt;br&gt;&lt;br&gt;Это уже нарушение второй группы условий (одновременно насрана замена и есть оригинал).&lt;br&gt;Вердикт - кривые входные условия, транзакционности нескольких операций в ФС действительно нет.&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (Аноним)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#7</link>
    <pubDate>Thu, 19 Dec 2024 13:57:49 GMT</pubDate>
    <description>Это временно.&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (DeerFriend)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#6</link>
    <pubDate>Wed, 18 Dec 2024 08:50:27 GMT</pubDate>
    <description>&amp;gt; без соответствующего обработчика&lt;br&gt;&lt;br&gt;проблема разработчика&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (Аноним)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#5</link>
    <pubDate>Wed, 18 Dec 2024 06:44:35 GMT</pubDate>
    <description>&amp;gt; только не рассказывайте ему про sighup &lt;br&gt;&lt;br&gt;но тебе-то можно рассказать, что sighup без соответствующего обработчика не работает?&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (ACCA)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#4</link>
    <pubDate>Tue, 17 Dec 2024 18:35:48 GMT</pubDate>
    <description>Конечно невозможно. Такое только в однозадачных системах бывает.&lt;br&gt;&quot;Замена насрана&quot; может быть в памяти другого процесса.&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (DeerFriend)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#3</link>
    <pubDate>Tue, 17 Dec 2024 15:02:46 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Какой-то бред ламерский. Хардлинк позволяет предельно атомарно заменить файл по указанному &lt;br&gt;&amp;gt;&amp;gt; имени на другой. Для любых разумных применений этого хватает. Проблемы только &lt;br&gt;&amp;gt;&amp;gt; у гениев, которым хочется в ту же самую айноду резко положить &lt;br&gt;&amp;gt;&amp;gt; другое содержимое. Где у вас есть такие возможности, там и процветайте, &lt;br&gt;&amp;gt;&amp;gt; собственно.&lt;br&gt;&amp;gt; Вася хочет, не файл заменить атомарно(для чего нужные сисколы есть), а заменить &lt;br&gt;&amp;gt; для работающего процесса открытый файл. Ну, я так понял, но этот &lt;br&gt;&amp;gt; поток бреда сложно однозначно понять &lt;br&gt;&lt;br&gt;только не рассказывайте ему про sighup&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (pavel_simple.)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#2</link>
    <pubDate>Tue, 17 Dec 2024 09:51:50 GMT</pubDate>
    <description>&amp;gt; Какой-то бред ламерский. Хардлинк позволяет предельно атомарно заменить файл по указанному &lt;br&gt;&amp;gt; имени на другой. Для любых разумных применений этого хватает. Проблемы только &lt;br&gt;&amp;gt; у гениев, которым хочется в ту же самую айноду резко положить &lt;br&gt;&amp;gt; другое содержимое. Где у вас есть такие возможности, там и процветайте, &lt;br&gt;&amp;gt; собственно.&lt;br&gt;&lt;br&gt;Вася хочет, не файл заменить атомарно(для чего нужные сисколы есть), а заменить для работающего процесса открытый файл. Ну, я так понял, но этот поток бреда сложно однозначно понять&lt;br&gt;</description>
</item>

<item>
    <title>Атомарная замена &apos;файлов&apos; (Аноним)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/10482.html#1</link>
    <pubDate>Tue, 17 Dec 2024 08:59:19 GMT</pubDate>
    <description>Какой-то бред ламерский. Хардлинк позволяет предельно атомарно заменить файл по указанному имени на другой. Для любых разумных применений этого хватает. Проблемы только у гениев, которым хочется в ту же самую айноду резко положить другое содержимое. Где у вас есть такие возможности, там и процветайте, собственно.&lt;br&gt;</description>
</item>

</channel>
</rss>
