Я просматривал функции API Win32 для операций управления файлами и каталогами. Я видел, что некоторые из этих функций имеют так называемые «транзакционные» аналоги.Что такое транзакционные операции с транзакциями?
Примеры:
CreateDirectory и CreateDirectoryTransacted
RemoveDirectory и RemoveDirectoryTransacted
CreateFile и CreateFileTransacted
CopyFile и CopyFileTransacted
Я читал объяснения этих транзакционных функций, статьи Википедии Transactional NTFS и this MSDN Magazine page. Но из-за тяжелой терминологии (для меня) на этих страницах я не совсем понял эти объяснения. Все они пришли к общему мнению, что эти функции являются «атомарными». Но насколько я понимаю из слова «атом», это ядро с вращающимися электронами вокруг него ...
Не могли бы вы объяснить мне простые и простые английские предложения, каковы цели и действия этих функций ? Почему и когда вы предпочитаете транзакционную версию функции API?
«Атомный» в этом контексте относится к первоначальному значению (греческого) слова, которое относится к «неделимому». Атомные операции таковы. Такая операция либо завершается успешно, либо в случае ошибки, если она не работает в целом, так что, что бы ни случилось, не будет никакого результата с полуоткрытым результатом, который может быть, например, поврежденной файловой системой. Другими словами: когда атомная операция выполняется в согласованном состоянии, она всегда * приводит к согласованному состоянию; либо старое согласованное состояние, либо новое согласованное состояние, но между ними нет ничего. – JimmyB
Возможно, посмотрите на это: http://msdn.microsoft.com/en-us/library/hh802690%28v=vs.85%29.aspx, в котором говорится, что «атомарность здесь заключается в том, что изменения либо полностью применяются, либо не применяются на самом деле, поскольку несогласованное состояние приведет к повреждению файла ». – JimmyB
Этот сайт предназначен только для членов его эксперта, потому что, даже если они не являются экспертами по теме, о которых они спрашивают, они знают, как задавать вопросы, которые не выделяются как «вне темы». – Ameen