All streams
Search
Write a publication
Pull to refresh
65
0
Send message
Не совсем. Безопасность — вещь комплексная. Да, полезно перезаписывать переменные, использованные под хранение секретных данных, но перезапись не делает весь продукт абсолютно безопасным, просто немного поднимает планку.
В посте три похожих куска. Первые два без volatile, третий — с volatile. У вас во втором фрагменте кода volatile int x; и в цитате после нее говорится про volatile lvalue, так что я предположил, что вы имели в виду volatile char*, иначе не понятно, в чем именно интрига.
В первом куске кода char* или volatile char*?
Замечательно. Между тем пост (более-менее в основном) о перезаписи массива перед выходом из функции. Где в вашем коде перезапись массива перед выходом из функции g()?
Это вы не путайте теплое с мягким. В примере ниже массив используется. Покажете код memset в примере ниже?

   304: int _tmain(int /*argc*/, _TCHAR* /*argv[]*/)
   305: {
00403940  sub         esp,194h  
00403946  mov         eax,dword ptr [___security_cookie (407018h)]  
0040394B  xor         eax,esp  
0040394D  mov         dword ptr [esp+190h],eax  
00403954  push        esi  
00403955  push        edi  
   306: 	const size_t size = 100;
   307: 	int buffer[size] = {0};
   308: 	for( size_t i = 0; i < size; i++ ) {
00403956  mov         edi,dword ptr [__imp__rand (4050C0h)]  
0040395C  xor         esi,esi  
0040395E  mov         edi,edi  
   309: 		buffer[i] = rand();
00403960  call        edi  
00403962  inc         esi  
00403963  cmp         esi,64h  
00403966  jb          wmain+20h (403960h)  
   310: 	}
   311: 	memset( buffer, 0, sizeof( buffer ) );
   312: 	return 0;
   313: }
00403968  mov         ecx,dword ptr [esp+198h]  
0040396F  pop         edi  
00403970  pop         esi  
00403971  xor         ecx,esp  
00403973  xor         eax,eax  
00403975  call        __security_check_cookie (403BCEh)  
0040397A  add         esp,194h  
00403980  ret
Вот что думает об этом Visual C++ 10

   304: int _tmain(int /*argc*/, _TCHAR* /*argv[]*/)
   305: {
   306: 	const size_t size = 100;
   307: 	int buffer[size] = {0};
   308: 	return 0;
00403940  xor         eax,eax  
   309: }
00403942  ret  


Нетрудно видеть, что сгенерирован только код, обеспечивающий «return 0;». И такое поведение полностью соответствует Стандарту.
Я имею в виду ситуацию, когда сильное магнитное поле приведет к деформации чего-нибудь внутри метки и механически «порвет» ее начинку. Насколько подойдет магнит от жесткого диска, оценивать не возьмусь.
Если не рассматривать суперсильные магниты, то, естественно, ничего не будет. Просто большинство людей считает, что метки «магнитные» и их можно «размагнитить» как гибкий диск.
Я очень старался ничего не упустить, но так и не понял до конца — на самой первой фотографии, где куча полосок, — это отслоившиеся при протравливании части схемы или что-то другое?
Почему ради других? Разве не приятно осознавать, что сделал что-то хорошо и на совесть?
Во-первых, светильники обычно располагаются наверху, а теплый воздух дальше поднимается к потолку, так что не очень это эффективно. Во-вторых, отопление нужно не круглый год.
Не только у компактных ламп. У OSRAM, например, трубки на 18 и 36 ватт, которые ставятся в «офисные» потолочные светильники, есть с кучей разных спектров. Скорее всего, у всех крупных производителей — тоже есть, просто пользователи привыкли все время «холодный дневной» ставить и сложился такой стереотип.
Вопрос совершенно разумный. Увеличенная батарея для ноутбука — именно фирменный аксессуар, логично допустить, что ноутбук на него изначально рассчитан, а здесь батарея стороннего производителя, мало ли что.

Приведу похожий пример: у Nokia есть три очень похожих батареи — BL5C, BL5C-A и BL5C-B. Телефон Nokia 1200 поставляется с BL5C-A, в него можно также ставить BL5С. Телефон Nokia 1280 поставляется с BL5C-B, в него тоже можно ставить BL5C. Но попытка поставить BL5C-B (из поставки 1280) в модель 1200 приводит к тому, что при подключении зарядного устройства на экране телефона показывается сообщение об ошибке и зарядка не начинается. Телефон использует какой-то протокол, чтобы решить, нравится ли ему батарея.
Не забывайте, что сколько-то страниц в минуту — это пиковая скорость. Какое-то время сканер простаивает по самым разным причинам.
Да, но в его бизнес-процессе может банально не быть этой самой верстки в PDF в тот момент, когда вы ее попросили. Либо ее не было вообще (используется другой формат), либо она была на этапе подготовки, а потом не сохранилась. Именно поэтому часто технически проще взять бумажную книгу и оцифровать.
Ага, так издатель вам ее и дал.
Понял вашу мысль. Мое личное мнение — что при условии равного качества начинки гибкость применения внешней батареи — огромный плюс.
Почему нет смысла во внешних батареях менее чем на 8 ампер-часов?
Со специальной крышкой понятно, но не понятно вот что. Можно выбрать увеличенный аккумулятор со специальной крышкой, который будет подходить только к конкретной модели устройства и сделает устройство заметно толще. Можно вместо этого выбрать так называемую внешнюю батарею, которая заряжается отдельно и потом может быть использована для зарядки и питания самых разных устройств. Такое впечатление, что внешняя батарея — более гибкое и универсальное решение. Что я не учел?
Вы не могли бы кратно описать, в чем конкретно состоят эти возможности?

Information

Rating
Does not participate
Works in
Registered
Activity