Этот вопрос, я думаю, достаточно техничен для S/O и, вероятно, слишком ориентирован на программирование для Android. Я заинтригован, как файлы обрабатываются на Android (или Java или Linux, в зависимости от ситуации), поскольку я сделал что-то с моим новым смартфоном, и мне было бы интересно узнать, как это произошло.
Я переносил файл с моего ноутбука на свой Android-телефон через Bluetooth. Я увидел новый файл в проводнике файлов, предположил, что он полностью перенесен, и поэтому переместил его с /sdcard/bluetooth
на /sdcard/torrents
. После того, как я сделал это, я заметил, что он по-прежнему переносится. К моему удивлению, он успешно завершился, подтвержден с помощью значка уведомления в телефоне и с помощью ручной проверки MD5 с обеих сторон. В большинстве систем перемещение файла вызвало бы сбой.
В чем причина успешной передачи? Я знаю, что в общем случае путь к файлу зависит от расположения файла в файловой системе (в данном случае SD-карты). Я полагаю, что приложение Bluetooth открыло дескриптор файла, и когда я переместил файл, таблица "открытых файлов" была обновлена новым путем. Является ли эта функция общепринятой для любой системы Linux? Могу ли я сделать mv
в написанном файле и ожидать, что копия - в ее новом месте - будет правильной?