Почему ARG_MAX не определяется через limits.h?

Если вы можете встать, добавив одну зависимость к вашему проекту, есть большой пакет blob-util npm , который обеспечивает удобную функцию base64StringToBlob. После добавления в package.json вы можете использовать его следующим образом:

import { base64StringToBlob } from 'blob-util';

const contentType = 'image/png';
const b64Data = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';

const blob = base64StringToBlob(b64Data, contentType);

// Do whatever you need with your blob...

7
задан Stu Thompson 23 April 2010 в 11:09
поделиться

1 ответ

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

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

Корректная вещь сделать состоит в том, чтобы звонить sysconf и попросите у этого "ARG_MAX" или "_POSIX_ARG_MAX". Я думаю, что это - совместимое POSIX решение так или иначе.

Acc. к моей документации, Вы включаете один или оба из unistd.h или limits.h на основе того, какие значения Вы запрашиваете.

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

8
ответ дан 7 December 2019 в 10:11
поделиться
Другие вопросы по тегам:

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