поддерживать приглашение, несмотря на поток вывода

Файловые системы, разработанные для Unix, такие как ext4, отслеживают пользователя через число, идентификатор пользователя. Имя пользователя не зарегистрировано. Вы видите свой собственный идентификатор пользователя с командой id -u. Вы видите идентификатор пользователя, кто владеет файлом с ls -ln /path/to/file.

При взятии ext4 файловой системы к другой машине файлы будут все еще иметь те же полномочия, и у них будет тот же идентификатор пользователя. Это может или не может быть правильным пользователем. В целом различные машины не имеют тех же идентификаторов пользователей для тех же пользователей, если это требование не было принято во внимание при создании пользователя или пула машин от той же пользовательской базы данных.

Полномочия на файле только защищают тот файл в одной системе. Полномочия на съемном диске не имеют никакого эффекта для кого-то, кто выталкивает диск в их собственный компьютер.

Если Вы хотите обмениваться файлами через USB, FAT32 обычно является предпочтительной файловой системой. Это - то, что большинство флеш-накопителей отформатировано для того, когда они продаются. Если необходимо хранить файлы с именами или атрибутами, что FAT32 не поддерживает, создает архив (например. .tar.gz).

5
22.10.2015, 19:23
2 ответа

Вы можете создать объект-оболочку, который сериализует все выходные потоки. Вероятно, вам понадобятся мьютексы для синхронизации этого.

Затем вы можете печатать '>' после каждого вывода дочернего процесса, таким образом, последней строкой всегда будет '>'.

1
27.01.2020, 20:43

Для очень простой версии, которая просто «всегда поддерживает строку приглашения после самой последней строки вывода», вы можете сделать что-то вроде постоянного вывода "\ routput here \ n>" (чтобы перезаписать самую последнюю строку приглашения, напишите вывод, затем напишите новую строку приглашения). Если вы хотите, чтобы пользователь мог сохранять свой ввод в новых строках вывода, вам нужно сделать что-нибудь необычное, вроде readline / libedit . (На самом деле у тех, кто может это сделать, может быть вариант; я не уверен.) Общий процесс заключался бы в переходе в режим cbreak / raw, поддержании буфера в памяти только того, что набрал пользователь, а затем его выводе. снова после приглашения всякий раз, когда вы пишете новую строку вывода.

0
27.01.2020, 20:43

Теги

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