В том-то и дело, что я прочитал. Классы матриц передают в поток числа (индексы и значения) в определённом форматом MatrixMarket порядке, а класс потока — это такой странный буфер. То есть, классы матриц знают про MatrixMarket. Какой тогда смысл в этом всём?
Типичный Enterprise-подход. 2 дополнительных класса чтобы читать/записывать матрицу, которые к тому же не решают проблему многих видов матриц и многих форматов хранения. Как вы собираетесь матрицу в координатном формате записывать? Три вызова writeInt(), а затем маркер элемента чтобы три числа в нужном порядке из буфера сбросилось? То есть, детали формата MatrixMarket плавно перетекли в класс разрежённой матрицы? Или ваш MMOutputStream — это просто такой навороченный (и бесполезный) буфер данных?
Это не имеет никакого значения. Кто может подменить файл при правильно выставленных правах? Администратор или другие программы текущего пользователя. Если мы не доверяем администратору, то наши проверки подписей бесполезны. Если не доверяем другим программам — тоже.
Ни один из вариантов с созданием файла не является безопасным, так как можно подменить файл между проверкой подписи и его загрузкой
Не согласен. Кто может подменить файл? При правильно выставленных правах на файл — только процесс с правами root или с правами этого пользователя. Если вы не доверяете root, то о любой безопасности на данной системе можно забыть. Если вы не доверяете другим программам этого же пользователя — аналогично.
Расскажите про то, какие возможности для упрощения отладки вычислений есть в IEEE 754 (например, SNaN, как заставить процессоры различных архитектур их генерировать вместо NaN).
5аб. Просто пусть все рабочие потоки в самом начале блокируются на семафоре, а после запуска всех потоков main() увеличивает семафор на количество потоков. Или pthread_barrier_*
GPL не запрещает продавать программы. Вы купите у меня git, скажем, за 1000$? Тогда он уже перестанет быть для вас бесплатной системой и вы, наконец, сможете им пользоваться.
Между прочим, из-за того, что многим нравится вбивать 1.1.1.1 как пример адреса, сейчас в эту сеть льются огромные потоки мусора: habrahabr.ru/links/83187/
Чтобы не выдумывать IP-адреса, используйте диапазоны адресов для документации и примеров: tools.ietf.org/html/rfc5737
> 3. Documentation Address Blocks
> The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2),
> and 203.0.113.0/24 (TEST-NET-3) are provided for use in
> documentation.
Непонятен пример с автокадом. Если вы будете вот так вот мышкой всё тыкать и не использовать элементы CLI взаимодействия, то у вас быстрее мышь сломается, чем вы закончите первый чертёж.
Не согласен. Кто может подменить файл? При правильно выставленных правах на файл — только процесс с правами root или с правами этого пользователя. Если вы не доверяете root, то о любой безопасности на данной системе можно забыть. Если вы не доверяете другим программам этого же пользователя — аналогично.
Вкомпилируйте netconsole в ядро и передавайте параметры в командной строке ядра. Будете видеть все сообщения.
github.com/korisk/pinc/pull/1
> 3. Documentation Address Blocks
> The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2),
> and 203.0.113.0/24 (TEST-NET-3) are provided for use in
> documentation.