LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Обработка open это return. Обработка read это return. Чем эти две ситуации отличаются?

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

А немедленный после open read вернёт ошибку, если файл есть, и читать нам его можно и даже нужно, но по какой-то фантастической, и скорее всего временной/случайной причине прочесть его не получилось.

Если мы вывалимся точно так же как в случае с open, то сообщение останется неотправленным. И оно внезапно, окажется отправлено, например, месяца через два, когда, по каким-то причинам связь пропадёт и появится, или демон будет перезапущен, когда актуальность сообщения будет равна нулю, или это вообще будет дорогостоящая ложная тревога.

Я похоже начинаю понимать логику создателей «безопасных» язычков. Это язычки не для того чтобы писать что-то полезное, и не для тех, кто хочет написать что-то полезное. Это для тех, кто хочет исключительно прикрыть свою жопу при написании каких-то кусков кода за деньги. Чтобы какой бы конечностью ни был написан кусок кода, в нём не оказалось бы ошибок за которые можно получить по жопе или лишится денег. А как и, главное, зачем на самом деле нужен этот кусок кода - совершенно насрать. Сказано написать функцию, не думая вообще ни о чём пишем функцию и получаем от хозяина еду за «безопасный» код без ошибок которые нельзя совершить в язычке. Всё. Вот ниша этих язычков. Что мы и наблюдаем тут во всей красе.

Исходная версия Stanson, :

Обработка open это return. Обработка read это return. Чем эти две ситуации отличаются?

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

А немедленный после open read вернёт ошибку, если файл есть, и читать нам его можно, но по какой-то фантастической, и скорее всего временной/случайной причине прочесть его не получилось.

Если мы вывалимся точно так же как в случае с open, то сообщение останется неотправленным. И оно внезапно, окажется отправлено, например, месяца через два, когда, по каким-то причинам связь пропадёт и появится, или демон будет перезапущен, когда актуальность сообщения будет равна нулю, или это вообще будет дорогостоящая ложная тревога.

Я похоже начинаю понимать логику создателей «безопасных» язычков. Это язычки не для того чтобы писать что-то полезное, и не для тех, кто хочет написать что-то полезное. Это для тех, кто хочет исключительно прикрыть свою жопу при написании каких-то кусков кода за деньги. Чтобы какой бы конечностью ни был написан кусок кода, в нём не оказалось бы ошибок за которые можно получить по жопе или лишится денег. А как и, главное, зачем на самом деле нужен этот кусок кода - совершенно насрать. Сказано написать функцию, не думая вообще ни о чём пишем функцию и получаем от хозяина еду за «безопасный» код без ошибок которые нельзя совершить в язычке. Всё. Вот ниша этих язычков. Что мы и наблюдаем тут во всей красе.