Что-то бред какой-то, что с
той, что с
другой стороны. Как автор имплементации POSIX API для встроенной операционки ASA/PIX в Cisco Inc, прокомментирую.
> >Вместо файловой системы, очевидно, нужна база данных. По сути, файловая система это и так БД, только не реляционная, без транзакций...
>
> Современные (уже лет 15 как) файловые системы суть
(
Read more... )
Comments 87
А кто виноват, и что делать не написано :-)
Reply
Reply
Reply
Reply
>>Опять каждый о своём. Речь о application programming paradigm, где ты в argv[], скажем, получаешь структурированный блоб, например, а не char * до файла.
Если хочется принимать на вход блоб, то можно просто читать из stdin и работать с программой так: cat file | my_super_bin
Именно об этом и говорил slonik-v-domene, когда упоминал пайпы.
Reply
Reply
Reply
Типа такого:
echo "sdf" | program http://foo.bar/
В программе:
int main(blob_t args[]) {
cout << args[0].contents();
cout << args[1].contents();
}
P.S. Я адвокат дьявола, на самом деле, мне это всё приведение к одному формату не нужно.
Reply
Reply
Классный комментарий.
Reply
Reply
Reply
Reply
Ага, щаз. Нет строк в MsgPack, только рекомендация "если хотите строку - пихните UTF-8, что-ли. но от блоба со свопом Windows NT это отличаться не будет".
"String objects may contain invalid byte sequence and the behavior of a deserializer depends on the actual implementation"
Также см. https://github.com/msgpack/msgpack/issues/121
Reply
Надо записать два файла куда угодно, записать path до них в paths.txt.tmp, а затем сделать атомарный rename файла paths.txt.tmp в paths.txt
Читающее файлы приложение - пусть лезет в paths.txt и достаёт оттуда имена файлов.
Возможно, можно делать rename на директорию, но у меня не получилось (почему-то падает с ошибкой "директория уже существует").
Reply
Поэтому когда я развлекался с этим делом, я делал на хардлинках (файлов в директорию(
Это, конечно, тоже не атоммарно, но вероятность того что пользователь увидит неконсистентное состояние, достаточно мала.
Reply
Reply
Reply
Leave a comment