Официальный форум СВД Встраиваемые Системы
28 Март, 2024, 12:33:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: opendir и структура struct _dir, она же DIR какова по структуре?  (Прочитано 1817 раз)
KA3AKOB
Пользователь

Сообщений: 54


« : 08 Июль, 2016, 17:52:31 »

В QNX® Neutrino® Realtime Operating System Library Reference на странице 1575 приведён пример использования функций opendir и readdir. В Helpe для обеих функций указано Classification: POSIX 1003.1, стало быть мобильны более или менее. И, верно, в Borland C++ 5.1 compiler эти функции есть, и в Cygwin присутствуют. И можно запустить пример, построив его компилятором Borlandа, и в Cygwin. Но структуры данных struct _dir (она же DIR) и struct dirent, с которыми эти функции работают отличаются радикально в обеих библиотеках, можно посмотреть в файле "dirent.h". А в QNX и вовсе странность: строчка typedef struct _dir DIR; есть, но ни в каких *.h файлах определения структуры найти не удалось. Спрашивается, как же, вообще, транслируется пример для QNX? А я проверял. И в какие пути смотрит компилятор qcc?

С уважением,
Казаков С.А.


Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 281

Сотрудник СВД ВС


WWW
« Ответ #1 : 08 Июль, 2016, 18:34:49 »

Спрашивается, как же, вообще, транслируется пример для QNX? А я проверял.
Структура struct _dir является частью библиотеки libc и не предназначена для непосредственной работы с ней. Используются только указатели для корректной передачи параметров между функциями. C точки зрения ANSI C, указатель на произвольную структуру без её объявления - вполне валидная конструкция.

И в какие пути смотрит компилятор qcc?
Пути по умолчанию для qcc можно посмотреть, выполнив команду
Код:
qcc -Wp,-v somefile
, где somefile - произвольный файл на языке C или C++ (для C и C++ пути будут отличаться).
Записан

KA3AKOB
Пользователь

Сообщений: 54


« Ответ #2 : 11 Июль, 2016, 14:33:58 »

Спасибо за ответ, Игорь Витальевич. Задавая вопрос, я имел в виду, что с помощью opendir и прочих функций POSIX можно поработать со структурой каталогов, спускаться по дереву директориев и выполнять подобные действия. Причём, по возможности одинаково и в Windows, c помощью Cygwin, и в QNX. Однако ничего более вразумительного, чем entry->d_name из примера не видно. Пришлось смотреть структуру DIR в тексте заголовочных файлов. В Windows и в Cygwin посмотреть можно, а в QNX не нашёл. Потому и обратился за советом.

С уважением,
Казаков С.А.
Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 281

Сотрудник СВД ВС


WWW
« Ответ #3 : 11 Июль, 2016, 16:59:06 »

Для решения подобных задач также могут использоваться функции stat() и функции семейства ftw() - http://www.qnx.com/developers/docs/6.5.0_sp1/topic/com.qnx.doc.neutrino_lib_ref/f/ftw.html (POSIX 1003.1 XSI).
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2020 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 12 Март, 2024, 02:15:12