Библиотека NSPR для языка C: Кроссплатформенный уровень абстракции
Netscape Portable Runtime
NSPR – кроссплатформенная C библиотека для единообразного доступа к функциям ОС. Используется Firefox, Oracle, Red Hat. Абстракция, портативность, API.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Библиотека языка программирования C Netscape Portable Runtime, или NSPR, — это кроссплатформенная библиотека, представляющая собой слой абстракции для языка программирования C. Она предоставляет унифицированный API для различных функций операционных систем.
C programming language library
The Netscape Portable Runtime, or NSPR, is a cross platform abstraction layer library for the C programming language. It provides a uniform API for various operating system functions.
История
NSPR изначально разрабатывался как основа для виртуальной машины Java в Netscape 5. Со временем он был расширен для поддержки дополнительной функциональности, используемой в серверном и клиентском программном обеспечении Netscape. NSPR по-прежнему используется Firefox, а также многими серверными продуктами Oracle и Red Hat.
NSPR was originally designed to provide a base for the Java virtual machine in Netscape 5. Over time it was extended to allow support for additional functionality used for Netscape's server and client software. NSPR continues to be used today by Firefox as well as many of Oracle and Red Hat's server products.
В/В
NSPR предоставляет функции для работы с файлами, каталогами, анонимными каналами и сетевыми сокетами.
NSPR provides functions for working with files, directories, anonymous pipes and network sockets.
Сетевые адреса
NSPR определяет объект сетевого адреса, ориентированный на IP. Предоставляются функции для преобразования строк ASCII (DNS-имен) в сетевые адресные структуры NSPR, независимо от того, используется ли технология адресации IPv4 или IPv6.
NSPR defines an IP centric network address object. Functions are provided to translate ASCII strings (DNS names) into NSPR's network address structures, regardless of whether the addressing technology uses IPv4 or IPv6.
Время
NSPR предоставляет средства синхронизации времени в двух формах: интервальные таймеры и календарные функции. Интервальные таймеры основаны на свободно работающем таймере с 32-битным разрешением. Их начальную точку отсчета и интервал можно задавать по мере необходимости. Календарное время представлено 64-битным целым числом со знаком в формате Unix time. NSPR предоставляет функции для работы и преобразования временных меток.
NSPR makes timing facilities available in two forms: interval timing and calendar functions. Interval timers are based on a free running 32 bit resolution timer. Their epoch and interval can be set as needed. Calendar times are represented using 64 bit signed Unix time. NSPR provides functions for manipulating and converting timestamps.
Управление памятью
NSPR предоставляет API для выполнения базовых функций malloc, calloc, realloc и free. В зависимости от платформы, эти функции могут быть реализованы практически полностью в среде выполнения NSPR или же представлять собой обертки, которые сразу обращаются к функциям, предоставляемым операционной системой.
NSPR provides API to perform the basic malloc, calloc, realloc and free functions. Depending on the platform, the functions may be implemented almost entirely in the NSPR runtime or simply shims that call immediately into the host operating system's offerings.
Связывание
Поддержка динамической компоновки (загрузка и выгрузка общих библиотек) входит в состав функциональных возможностей NSPR. В большинстве случаев это лишь унификация средств, предоставляемых различными поставщиками платформы.
Support for linking (shared library loading and unloading) forms part of NSPR's feature set. In most cases this is simply a smoothing over of the facilities offered by the various platform providers.
Структуры данных
NSPR предоставляет реализации циклического связного списка и хеш-таблицы.
NSPR provides implementations of a circular linked list and a hash table.