October 23rd, 2018

сто друзей

Отличный язык C++

So I can detect that opening the file wasn't successful, but I don't
know *why* (i.e. permissions, no such file or directory, etc.). My guess
is that strerror and errno still do what I expect them to do, however I
think that would be a very C-way to solve things.

Use strerror(), perror(), and errno and consider yourself lucky. The
C++ standard doesn't exactly promise that they will work for iostreams,
but they do for the compilers I use. That's the best you get for now.
==================

Здесь про открытие, но на чтении ровно так же.

Охуенно же! То есть, стандарт забыл о том, что файл, вообще-то, совсем не обязан читаться (ну тот, кто работал с дискетами 360, не говоря уже о более древних временах, меня поймёт очень хорошо). И, вообще-то, неплохо отделить ситуацию "файл не читается" от ситуации "конец файла". Ну и ругнуться в логи "no data" или как-то так. Мне же легче будет. Но стандарт писали не практики, как ув. Ларри Уолл (скажем даже св. влкмчнк. Ларри Уолл, не иначе реинкарнация Рамы), а идиоты. И отдали на откуп компиляторам. А те, ну хорошо, если сделают read, а потом будут гонять память, а если после read полезут в ядро виндов? А там всего лишь GetLastError. Который сообщит мне насколько удачно прошёл перфонманс каунтер вместо чтения из файла.

А я-то думаю, что за ерунда творится? А оказывается, что файл не читается, что конец у него - изофаллично для программы на C++. Впечатлён в очередной раз.

Вы всё ещё хотите, чтобы ваше дитё писало на этом чуде XX века? :) Дайте ему в руки лучше perl.