как плохо c может отказать?

Это то, что вы ищете?

const bla = {
   "members":{
      "8392883213":{
         "requestingCoverageIndicator":true,
         "demographic":{
            "ssn":"999888888",
            "birthDate":"1980-01-01",
            "name":{
               "firstName":"Susan",
               "middleName":"Carrie",
               "lastName":"Griffith",
               "suffix":"Jr."
            }
         }
      },
      "8392883222":{
         "requestingCoverageIndicator":true,
         "demographic":{
            "ssn":"999888888",
            "birthDate":"1980-01-01",
            "name":{
               "firstName":"Susan",
               "middleName":"Carrie",
               "lastName":"Griffith",
               "suffix":"Jr."
            }
         }
      }
   }
};
console.log(Object.keys(bla.members).map(ele => bla.members[ele]));

8
задан Steven A. Lowe 13 March 2009 в 04:55
поделиться

20 ответов

Операционная система предотвращает большинство ужасных проблем в эти дни. Худшей, которую я когда-либо делал, является твердая блокировка машина (просто должен был перезагрузить удержанием кнопки питания), и скремблируйте несколько файлов.

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

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

Из комментария в другом ответе: "Я использую DS Nintendo для выполнения их"

Хорошо, это имеет значение! (Сначала: Потрясающая идея! Походит на забаву.) Кодирующий для чего-то как этот не то же с точки зрения того, что может пойти не так, как надо как большая часть кодирования для настольного компьютера. Беглый взгляд в документации для libnds и некоторых учебных руководствах на Nintendo, программирование DS указывает мне, что нет никакой ОС для разговора о. Так, я понятия не имею, сколько Вы могли сделать со случайным указателем, вероятно, много. Возможно что-то повреждение. Это могла бы быть хорошая идея искать для людей, которые сделали программирование для той платформы прежде, посмотрите то, что они должны сказать.

8
ответ дан 5 December 2019 в 04:28
поделиться

Катастрофический отказ не является худшей вещью, которая может произойти.

Я читал о старой программе сжатия файла Unix (Вы знаете, как Zip), который не проверял возвращаемое значение от fclose. Да, fclose может возвратить ошибку. Вывод в файл обычно буферизуется, поэтому даже если вызов к fwrite или putc, кажется, работает и возвращается хорошо, данные могут все еще быть в буфере, ожидая, чтобы быть записанными. Когда fclose называют, любые незаписанные данные сбрасываются, и это может перестать работать, так как (например), диск может быть полным. И так как программа сжатия обычно запускалась просто, потому что диск был почти полон, это происходило скорее часто. Так программа, тихо усеченная новый, сжатый файл, исходный несжатый файл был удален, и в следующем году или поэтому когда кто-то пытался распаковать файл, конец отсутствовал!

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

0
ответ дан 5 December 2019 в 04:28
поделиться

Если рассматриваемое программное обеспечение работает на ПК, оно может "просто" снизить Ваш компьютер.

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

0
ответ дан 5 December 2019 в 04:28
поделиться

Назад в колледже для меня определили задачу при создании прокси многопоточности.

Время от времени прокси не отвечал ни один из ресурсов страница, которую вытягивают. Код, вызывающий проблему:

Некоторый код с водосливными проблемами, которые использовали переменные около обработчика файлов. Прежде, чем знать, что происходило, я нашел это действительно странным, что перемещение объявления обработчика файлов "устранило" проблему, lol.

Проверка ps этот (не в c, но хорошей истории :)): http://trixter.wordpress.com/2006/02/02/computing-myth-1-software-cannot-damage-hardware/

0
ответ дан 5 December 2019 в 04:28
поделиться

Назад, когда я писал драйверы Win98, BSOD преследовал всех. Я помню следующую ошибку, которую я сделал

структура определения типа _SOME_TAG_ {

    int nSomeVar;
    int nSomeMore;
    ...

} MYSTRUCT, *PMYSTRUCT;

.... PMYSTRUCT pMyStruct;

//И я использую эту структуру, не выделяя памяти ;-) pMyStruct-> nSomeVar = 0;

И катастрофические отказы драйвера были так ужасны, но у нас был SoftICE от Numega, Хотя это только 10 лет назад.. Я чувствую как возрасты назад

0
ответ дан 5 December 2019 в 04:28
поделиться

C позволяет Вам иметь дело с машиной, достаточно близкой к непосредственно. То, как эффектно это может отказать, является функцией того, что может сделать машина.

Так: процесс непривилегированного режима без специальных полномочий в хорошей современной операционной системе действительно не сделает так многого. Но у Вас есть программное обеспечение повсеместно. Думайте о программном обеспечении, управляющем тормозными системами в поезде. Думайте о программном обеспечении, выполняющем чрезвычайную внутреннюю связь, когда кто-то действительно будет нуждаться в помощи. Думайте о программном обеспечении, выполняющем знаки на оживленной магистрали. Думайте о программном обеспечении, выполняющем систему управляемой ракеты.

Повсеместно в эти дни существует программное обеспечение. Многое из него записано в C.

0
ответ дан 5 December 2019 в 04:28
поделиться

Ну, назад в дни DOS, мне удалось перезаписать часть загрузочного сектора - ничто как перезагрузка для нахождения "ОС Не Найденной" или независимо от того, что сообщение было.

Вы учитесь на горьком опыте, чтобы быть очень, очень тщательная запись в диск после этого...

0
ответ дан 5 December 2019 в 04:28
поделиться

На любой ОС с защищенной памятью худшее, которое может произойти, - то, что Ваш процесс отказывает. Теперь, если Ваш процесс, оказывается, часть ядра или расширения ядра затем, можно, очевидно, разрушить целую ОС, но это хуже, можно сделать.

Однако действительно это то же со многими другими языками (например, в отсрочке C нулевой указатель, в Java используют установленную в NULL ссылку на объект, оба разрушат Ваш процесс).

Так, я верю с защищенной памятью, C не может больше наносить ущерб, чем какой-либо другой Язык (если Ваш процесс не является частью ОС ;))

1
ответ дан 5 December 2019 в 04:28
поделиться

Назад в дни DOS я на самом деле перезаписал информацию о BIOS. Должен был заставить технологию фиксировать его. Мой первый домашний компьютер - 286. Незагрузочный после дня или два.

1
ответ дан 5 December 2019 в 04:28
поделиться

Был компьютер, ДОМАШНЕЕ ЖИВОТНОЕ Commodore 4032 (иначе "Толстые 40"), где было на самом деле возможно постоянно сжечь видео микросхему при вводе по абсолютному адресу неправильного значения в неправильную часть памяти. Можно предположить, что, если был компилятор C на той машине, дикий указатель мог бы на самом деле нанести непоправимый физический ущерб компьютеру.

1
ответ дан 5 December 2019 в 04:28
поделиться

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

Самое близкое можно прийти к тому, чтобы на самом деле портить систему, неправильно использует процессор/память/дисковые ресурсы или порождает столько подпроцессов, что ОС исчерпывает PIDs (если это все еще использует 32-разрядное значение для хранения их).

1
ответ дан 5 December 2019 в 04:28
поделиться

до защищенных архитектур памяти большинство векторов перехода, используемых операционной системой, было сохранено на нулевой странице памяти (адреса, запускающиеся в нуле)

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

[кодирование в ассемблере было еще большим количеством забавы]

2
ответ дан 5 December 2019 в 04:28
поделиться

В наше время вид трудного создания C катастрофический отказ, что трудно (если Вы не кодируете Ядро ОС или что-то как этот).

Назад в DOS/Win95/Win98 дни, Вы могли сделать программу C chash действительно, действительно плохо. Я раньше получал это много:

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

Но сегодня, начиная с процессов, выполненных в безопасных ядрах, худшее, Вы доберетесь если Ваш процесс, уходящий.

3
ответ дан 5 December 2019 в 04:28
поделиться

C самостоятельно ничего не может разрушить. Неаккуратное программирование может разрушить все.

"Счастливые поверхности" являются признаком, что Ваш код повредил память. Единственная вещь C имела отношение, который является тем, что Вы приняли решение использовать ее. (И факт, Ваша ОС позволила этому происходить, удивителен - Вы все еще выполняете версию DOS?)

5
ответ дан 5 December 2019 в 04:28
поделиться

Ну, при написании кода ядра иногда можно перезаписать систему критические биты памяти, такие как векторы прерывания, глобальные таблицы дескрипторов, таблицы процессов, вызвав все виды забавного материала!

5
ответ дан 5 December 2019 в 04:28
поделиться

Худшей вещью, которая произошла со мной, были повреждения памяти, которые сразу не вызвали катастрофический отказ, но через некоторое время.. создание его настолько трудно для обнаружения.. argh

10
ответ дан 5 December 2019 в 04:28
поделиться

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

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

17
ответ дан 5 December 2019 в 04:28
поделиться

Назад, когда я учился программировать C++, это была на Mac рабочая система 7, или 8 я не помню который. Так или иначе это не имело никакой защищенной виртуальной памяти так много ошибок как отъезд висячего указателя, или переполнение буфера заставит целый компьютер отказывать. Я вспоминаю, что, когда Apple сначала объявила, что они собирались создать новую ОС, которая защитила пространство памяти в Macworld или чем-то, они показали исходный код для программы:

while (true)
  *(int *)i++ = 1;

И когда они запустили программу и просто программу, завершенную, а не целая машина (она имела сообщение как "Вы, не должны перезапускать Ваш компьютер"), целая комната, полная разработчиков, по-видимому, ворвалась в аплодисменты. Так или иначе, очевидно, не защищавший память действительно сделал программирование C или C++ действительно жесткими из-за увеличенной серьезности катастрофического отказа.

В наше время это не такое грандиозное предприятие, если Вы не программируете что-то, что работает на уровне супервизора, у Вас нет способности разрушить ОС.

12
ответ дан 5 December 2019 в 04:28
поделиться

Вот быстрый отрывок из "десяти заповедей Henry Spencer для Программистов C":

  • Заповедь № 2 - Вы не должны следовать за Нулевым указателем, поскольку хаос и безумие будут ждать тебя в своем конце.
  • Очевидно Священные Писания были неправильный записаны здесь, поскольку слова должны были быть ''нулевым указателем'', для уменьшения беспорядка между понятием нулевых указателей и макро-ПУСТЫМ УКАЗАТЕЛЕМ (который больше скоро). Иначе значение просто. Нулевой указатель указывает на регионы, заполненные драконами, демонами, дампами ядра и бесчисленными другими грязными созданиями, все из которых восхищаются резвлением в вашей программе, если Вы нарушаете их сон. Нулевой указатель не указывает на 0 ни из какого типа, несмотря на некоторый богохульный старый код, который нечестиво принимает это.

Для тех, кто не знаком с C, я думаю, что лучшее записанное краткое введение в C сделано "Десятью заповедями для Программистов C (Аннотируемый Выпуск)" Henry Spencer. Путем это записано, действительно доносит до читателя опасности C... одновременно будучи забавным (что означает, что читатель на самом деле обратит внимание больше).

=========================

Лично... C не разрушает это плохо при выполнении настольной разработки, потому что у Вас есть роскошь seg-сбоя. Seg-отказы - когда ОС видит, что Вы пробуете к ДЕЙСТВИТЕЛЬНО F' вещи, и она говорит "эй! Нельзя там", и останавливает процесс.

При выполнении встроенной разработки C... это - когда Вы получаете ДЕЙСТВИТЕЛЬНО захватывающий сумасшедший материал..., т.е. они ТРЕБУЮТ Вас к циклу включения и выключения питания 99,9% времени. Как это время, где код так или иначе портит мой стек вызовов... и затем Вы выполняете некоторых случайная другая функция..., и затем ISR так или иначе все еще идет..., и требуется 2 недели для фиксации того вида o ошибка.

6
ответ дан 5 December 2019 в 04:28
поделиться
Другие вопросы по тегам:

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