Информация об изменениях

Сообщение Re[5]: Как в одну строку кода прочитать содержимое файла в м от 07.01.2024 18:59

Изменено 07.01.2024 19:13 rg45

Re[5]: Как в одну строку кода прочитать содержимое файла в м
Здравствуйте, Kluev, Вы писали:

K>Т.е. данный говнокод может легко рыгнуть уже на целочисленном переполнении, не говоря уже о других проблемах озвученных другими собеседниками выше.


Да ты говнокода не видел, походу. Хочешь увидеть говнокод — загляни в реализацию File.ReadAllBytes. Вот где индусятина буйным цветом.

    public static byte[] ReadAllBytes(string path)
    {
        if (1 == 0)
        {
        }
        FileOptions options = FileOptions.SequentialScan;
        using SafeFileHandle safeFileHandle = OpenHandle(path, FileMode.Open, FileAccess.Read, FileShare.Read, options, 0L);
        long num = 0L;
        if (safeFileHandle.CanSeek && (num = safeFileHandle.GetFileLength()) > 2147483591)
        {
            throw new IOException(SR.IO_FileTooLong2GB);
        }
        if (num == 0L)
        {
            return ReadAllBytesUnknownLength(safeFileHandle);
        }
        int num2 = 0;
        int num3 = (int)num;
        byte[] array = new byte[num3];
        while (num3 > 0)
        {
            int num4 = RandomAccess.ReadAtOffset(safeFileHandle, array.AsSpan(num2, num3), num2);
            if (num4 == 0)
            {
                ThrowHelper.ThrowEndOfFileException();
            }
            num2 += num4;
            num3 -= num4;
        }
        return array;
    }


Классная работа ученика школы информационных технологий для умственно отсталых. Зато всё большими буквами, ага.
Re[5]: Как в одну строку кода прочитать содержимое файла в м
Здравствуйте, Kluev, Вы писали:

K>Т.е. данный говнокод может легко рыгнуть уже на целочисленном переполнении, не говоря уже о других проблемах озвученных другими собеседниками выше.


Да ты говнокода не видел, походу. Хочешь увидеть говнокод — загляни в реализацию File.ReadAllBytes. Вот где индусятина буйным цветом.

    public static byte[] ReadAllBytes(string path)
    {
        if (1 == 0)
        {
        }
        FileOptions options = FileOptions.SequentialScan;
        using SafeFileHandle safeFileHandle = OpenHandle(path, FileMode.Open, FileAccess.Read, FileShare.Read, options, 0L);
        long num = 0L;
        if (safeFileHandle.CanSeek && (num = safeFileHandle.GetFileLength()) > 2147483591)
        {
            throw new IOException(SR.IO_FileTooLong2GB);
        }
        if (num == 0L)
        {
            return ReadAllBytesUnknownLength(safeFileHandle);
        }
        int num2 = 0;
        int num3 = (int)num;
        byte[] array = new byte[num3];
        while (num3 > 0)
        {
            int num4 = RandomAccess.ReadAtOffset(safeFileHandle, array.AsSpan(num2, num3), num2);
            if (num4 == 0)
            {
                ThrowHelper.ThrowEndOfFileException();
            }
            num2 += num4;
            num3 -= num4;
        }
        return array;
    }


Классная работа ученика школы информационных технологий для умственно отсталых. Зато всё большими буквами, ага. Как до сих пор на картинки не перешли, удивляюсь.