Что это — дескриптор? Описание структуры атрибута

Описание структуры дескрипторов и их влияния и свойств, применяемых в различных средах и платформах.

7 ответов:

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

например, HWND в Win32 API является дескриптором для окна. Само по себе это бесполезно: вы не можете извлечь из него никакой информации. Но передайте его в правильные функции API, и вы можете выполнять с ним множество различных трюков. Внутренне вы можете подумайте о HWND как просто индекс в таблице графического интерфейса windows (что может быть не обязательно так, как это реализовано, но это имеет смысл).

EDIT: не на 100% уверен, что конкретно вы задавали в своем вопросе. В основном речь идет о чистом C/C++.

дескриптор-это указатель или индекс, к которому не прикреплен видимый тип. Обычно вы видите что-то вроде:

typedef void* HANDLE; HANDLE myHandleToSomething = CreateSomething();

поэтому в вашем коде вы просто передаете дескриптор как непрозрачное значение.

в коде, который использует объект, он приводит указатель к реальному типу структуры и использует его:

int doSomething(HANDLE s, int a, int b) { Something* something = reinterpret_cast<Something*>(s); return something->doit(a, b); }

или он использует его в качестве индекса для массива / вектора:

int doSomething(HANDLE s, int a, int b) { int index = (int)s; try { Something& something = vecSomething[index]; return something.doit(a, b); } catch (boundscheck& e) { throw SomethingException(INVALID_HANDLE); } }

дескриптор и своего рода указатель в том, что это обычно способ ссылки на некоторую сущность.

точнее было бы сказать, что указатель-это один тип дескриптора, но не все дескрипторы являются указателями.

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

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

также должно быть очевидно, что нет единого ответа на вопрос «что именно является ручкой», потому что ручки для разных вещей, даже в одной и той же системе, могут быть реализованы по-разному «Под капотом». Но вам не нужно беспокоиться об этих различиях.

В C++/CLI дескриптор-это указатель на объект, расположенный в куче GC. Создание объекта в (неуправляемой) куче C++ достигается с помощью new и результат a new выражение является» нормальным » указателем. Управляемый объект выделяется в куче GC (managed) с помощью gcnew выражение. Результатом будет дескриптор. Вы не можете сделать арифметику указателя на дескрипторах. Вы не освобождаете ручки. О них позаботится ГК. Кроме того, GC может свободно перемещать объекты в управляемой куче и обновите маркеры, чтобы они указывали на новые местоположения во время работы программы.

Это появляется в контексте Handle-Body-Idiom, также называемые идиомы Pimpl. Это позволяет сохранить ABI (двоичный интерфейс) библиотеки тем же самым, сохраняя фактические данные в другой объект класса, на который просто ссылается указатель, удерживаемый в объекте «дескриптор», состоящий из функций, которые делегируют этому классу «тело».

также полезно включить постоянное время и исключение безопасной замены двух объектов. Для этого просто указатель, указывающий на объект тела должен быть заменен.

HANDLE hnd; is same as void * ptr;

HANDLE-это тип, определенный в winnt.H файл в visual studio (windows).

Я.с: typedef void *HANDLE;

подробнее о дескриптор

дескриптор будет таким, каким вы хотите его видеть.

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

дескриптор может быть указателем на больший набор данных или в него.

Это зависит от того, как ведет себя код, который использует дескриптор. Это определяет тип дескриптора.

Почему термин ‘дескриптор ‘ используется то, что важно. Это указывает на них как на тип идентификации или доступа к объекту. В смысле, к программист, они представляют собой ‘ключ’ или доступ к чему-то.

Особенности дескриптора

Дескриптор – это слово, словосочетание или целое высказывание, которыми отражают содержание перелагаемого текста в наиболее сжатом виде. В зависимости от характера передаваемого содержания дескрипторы делятся на номинативные дескрипторы, представляющие темы и под темы первичного текста, и предикативные дескрипторы, передающие то, что говорится в пределах каждой темы и под темы. Дескрипторы — это мощный протокол с широкой областью применения. Они являются тем механизмом, который стоит за свойствами, методами, статическими методами, методами класса и вызовом. Дескриптор используется для маскирования внутренней реализации от пользователя. Дескриптор — это один из механизмов абстрагирования. Так же дескриптор – это имя учетной записи, которое Вы указывали при регистрации. Он необходим для добавления игроков в друзья, отправки внутри игровой почты и многих других полезных действий.

Посмотреть в игре его можно в чате, где, при наведении на имя персонажа, он будет показан в формате *имя персонажа*@*дескриптор*. На сайте, при входе под своим аккаунтом, Вы сможете увидеть дескриптор в верхней правой части страницы.

Рассмотрим, более детально, что значит дескриптор. Дескриптор (от латинского descriptor – описывающий) – это лексическая единица (словосочетание, слово) информационно-поискового языка, служит для того, чтобы описать основное смысловое содержание документа или формулировки запроса при поиске информации (документа) в информационно-поисковой системе. Дескриптор ставится однозначно в соответствие группе ключевых слов естественного языка, которые отобраны из текста, который относится к определенной области знаний. Таким образом, дескриптор можно смело считать самостоятельным языковым элементом.

Мы коротко рассмотрели дескриптор. Оставляйте свои комментарии или дополнения к материалу.

Дескриптор файла

Дескриптор файла — часто это переменная того типа данных, который возвращает в вашем ЯП, например, функция открытия файла, в этом случае дескриптор обычно, помимо прочего, содержит сведения об адресе расположения файла (например, пути к нему в рамках файловой системы).

HTML

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

Как правило, специфика языка определяет наличие открывающего дескриптора и закрывающего. Все, что между ними, подвержено изменению.

дескриптор это

Дескриптор может иметь атрибуты, то есть определённые свойства. Их синтаксис выглядит так: имя атрибута = его значение.

Подчиняясь общей логике, дескрипторы в HTML представляют собой идентификационные метки объектов. С их помощью можно управлять внешним видом, взаимодействовать со страницей и присваивать ей особые значения.

Руководство по использованию дескрипторов класса.

Дескрипторы классов — это мощный протокол общего назначения. Это механизм, лежащий в основе свойств, методов, статических методов, методов класса и функции super(). Они используются в самом Python для реализации классов нового стиля. Дескрипторы упрощают базовый C-код и предлагают гибкий набор новых инструментов для повседневных программ Python.

В общем случае, дескриптор — это атрибут объекта с «привязкой поведения», доступ к которому был переопределен методами в протоколе дескриптора. Этими методами являются __get__(), __set__() и __delete__(). Если какой-либо из этих методов определен для объекта, то он называется дескриптором.

Поведение по умолчанию для доступа к атрибуту заключается в получении __get__(), установке __set__() или удалении __delete__() атрибута из словаря объекта. Например, a.x имеет цепочку поиска, начинающуюся с a.__dict__[‘x’], затем type(a).__dict__[‘x’] и продолжающуюся через базовые классы type(a), исключая метаклассы. Если искомое значение является объектом, определяющим один из методов дескриптора, то Python может переопределить поведение по умолчанию и вызвать вместо него метод дескриптора. Где это происходит в цепочке приоритетов, зависит от того, какие методы дескриптора были определены.

Содержание:

  • Протокол дескрипторов класса,
  • Вызов дескрипторов класса,
  • Пример дескриптора класса,
  • Дескрипторы данных (дескрипторы атрибутов),
  • Дескрипторы функций и методы класса,
  • Статические методы и методы классов.

Архитектура х86

В процессорах дескрипторы — это особая структура, с помощью которой совершаются различные переходы. Её строение выглядит так:

  • Смещение. Может сдвинуть процедуру кода.
  • Селектор. Отражает своего рода метку, куда должна перейти процедура.
  • Количество параметров.
  • Права доступа.

Java

В Java EE имеется понятие дескриптора развёртывания. Он определяет то, каким образом будет развёрнут сервлет. По сути, это конфигурационный файл, содержащий настройки, свойства и требования к аппаратной части.

недопустимый дескриптор окна

В веб-приложениях такой файл по правилам должен называться web.xml и располагаться в определённой папке.

Ошибка номер 1400

Данная проблема часто встречается в семействе операционных систем Windows. При её появлении вместе с ней может быть и краткое описание — недопустимый дескриптор окна. А может встречаться и такая формулировка — «Error_invalid_window_handle» или 0х578.

Как бороться и что значит неверный дескриптор? В зависимости от контекста объекта, нужно принимать разные меры.

неверный дескриптор что это

В любом случае стоит сразу же пройтись по стандартным мерам, принимаемым ко всем проблемам с системой:

  • перезагрузка компьютера;
  • запуск и сканирование ошибки с помощью утилиты проверки целостности системных файлов;
  • проверить компьютер на вирусы.

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

Ещё один надёжный способ быстро восстановить работоспособность системы — сделать её откат с помощью стандартных инструментов. После использования «Восстановления системы», она вернётся к последней действующей резервной копии, при условии что она была ранее создана.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: