Установлен G_Mass_Storage не удаляет файлы

curl file:///dev/fd/0

Вот правильный способ заставить curl читать из дескриптора файла 0 (stdin).

Возьмите любой читаемый текстовый файл, сделайте

<theTextFile.txt curl file:///dev/fd/0

И он должен работать так же, как cat.

Ваша проблема - "Как заставить curl читать из трубы?", и я боюсь, что ответ таков: патч исходного кода curl.


Если вы проанализируете strace curl в примере выше, вы увидите, что он mmaps файл. mmaping не будет работать, если файл - это труба. Если бы curl использовал обычные системные вызовы read и write, не было бы никакой разницы между и cat theTextFile.txt curl | file:///dev/fd/0, что и должно быть, IMO.

0
17.07.2018, 17:10
1 ответ

Я ожидал, что использование /dev/mmcblk1p3сразу двумя разными способами, с одной стороны, смонтированное с использованием буферов ядра, с другой стороны, через g_mass_storageс использованием его буферов вызовет проблемы, как только буферы вылезут наружу синхронизации. «Не удаляет файлы», вероятно, только вершина айсберга; в общем, тот, кто записывает блок последним, побеждает, что приводит к несогласованному состоянию, и увидите ли вы изменения, сделанные в одной системе, как изменения в других системах, будет зависеть от текущего состояния буферизации.

Итак, :Не делай этого. Либо смонтировать, либо использовать как g_mass_storage, но не то и другое одновременно. Если вы хотите обмениваться файлами между двумя компьютерами, используйте что-то другое (, например. сетевая файловая система ).

0
28.01.2020, 04:18

Теги

Похожие вопросы