C/C++, GetLastError() и errno()

200
27 декабря 2018, 07:10

Я бы хотел разобраться в том, каким образом названные функции реализуют сохранение информации о последней возникшей ошибке в текущем вызывающем потоке.

Как это реализуется?

И каким способом можно реализовать аналогичный функционал? Ну, например, предоставить для своей библиотеки аналог GetLastError()/errno().

Answer 1

Начиная с 11 стандарта (обоих языков) можно использовать спецификатор хранения thread_local. При использовании компиляторов, которые его не поддерживают - аналогичные функции ОС, например Thread Local Storage в WinAPI. Пример использования TLS в библиотеке можно посмотреть здесь: Using Thread Local Storage in a Dynamic-Link Library

READ ALSO
Работа с wav файлами в с++

Работа с wav файлами в с++

Необходимо создать wav файл в котором будут сохранены дорожки нескольких wav файлаМожно посоветовать и библиотеку которая занимается этим...

215
Сохранения состояния отсчета в Android

Сохранения состояния отсчета в Android

У меня идет обратный отсчет, который отображается в TextViewПри смене ориентации текст в TextView становится указанным в xml разметке

203
Особенности работы с MySQL: Statement и PreparedStatement

Особенности работы с MySQL: Statement и PreparedStatement

Просьба специалистов помочь в понимании технического вопроса при работе с MySQL

189
next(), nextInt(), nextLine(), nextDouble()

next(), nextInt(), nextLine(), nextDouble()

Если у нас int x = scannextInt(), то при вводе строковых значений и double значений вылазит Exception

207