Каково различие между “C системные вызовы” и “C библиотечные подпрограммы”?

Прямо сейчас вы помещаете объект с единственным свойством uniqueID в массив; list[someUniqueId] не будет работать, потому что uniqueID будет свойством элемента в массиве , а не самого массива. Просто используйте вместо этого объект:

var listObj = {};
for(someCount){
  var uniqueID = uuidv4();
  listObj[uniqueID] = {
    var1: 1,
    var2: 2,
  };
}

И тогда вы можете получить доступ с помощью

var var1Val = list[uniqueID].var1

Если у вас есть признаки того, что вы всегда обращаетесь к свойствам из (то есть, uniqueID s), вероятно, лучше не использовать массив где-либо в коде.

Также, как правильно проверить:

if(list[uniqueID] === undefind)

Просто измените на undefined, и это должно работать просто отлично.

22
задан user151019 18 May 2012 в 16:01
поделиться

3 ответа

Системные вызовы являются функциями операционной системы, как на UNIX, malloc() , функция создается сверху sbrk() системный вызов (для изменения размеров пространства памяти процесса).

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

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

30
ответ дан 29 November 2019 в 03:46
поделиться

Системные вызовы являются интерфейсом между кодом уровня пользователя и ядром. C Библиотечные подпрограммы вызовы библиотеки как любой другой, им просто, оказывается, действительно обычно предоставляют (в значительной степени универсально). Много стандартных библиотечных подпрограмм является обертками (тонкий или иначе) вокруг системных вызовов, который действительно имеет тенденцию стирать грань немного.

, относительно которого использовать, как правило, используют тот что лучшие иски Ваши потребности.

12
ответ дан 29 November 2019 в 03:46
поделиться

Вызовы, описанные в разделе 2 из руководства, являются всеми относительно тонкими обертками вокруг фактических вызовов к системным службам, которые захватывают к ядру. Стандартные библиотечные подпрограммы C, описанные в разделе 3 из руководства, являются клиентскими библиотечными функциями, которые могут или не могут на самом деле использовать системные вызовы.

Эта регистрация имеет описание системных вызовов и захватывающий к ядру (в немного отличающемся контексте) и объясняет базовый механизм позади системных вызовов с некоторыми ссылками.

6
ответ дан 29 November 2019 в 03:46
поделиться
Другие вопросы по тегам:

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