- Opendir c linux example
- BadproG.com
- Navigation
- Main menu
- C++ — Qt Framework — Using QOpenGLWidget to display a window for moving shapes with keyboard and mouse
- C++ — Qt Framework — Using OpenGL texture with index array
- C++ — Qt Framework — Using 1 OpenGL VAO and 2 VBOs with only 1 array for both position and color of each vertex
- C++ — Qt Framework — Using OpenGL VAO and VBO to handle 2 different objects on the scene
- Android — API — Creating a Spinner with colors as choices
- Python 3 — PySide2 — Setting up and using Qt Designer
- C++ — Boost — Converting std::vector to Boost.Python Numpy ndarray
- C++ — Boost — Using Boost.Python Numpy from_data()
- C++ — Boost — Building the Boost.Python NumPy extension as a library
- C++ — Boost — Using Boost.Python library on Windows to create a DLL
- Русские Блоги
- Программирование системы Linux (5): операция каталога (OpenDIR, READDIR, CONDECIR, STAT)
- 1, роль Ls
- 2, связанный системный звонок
- 2. Откройте каталог Opendir
- 2.2, прочитайте каталог readdir
- 2.3, Закройте каталог закрытого
- 2.4, чтобы получить свойство файлового стата
- 3, простое содержание каталога чтения LS
- 4, примера применения стата
- 5, модифицировать свойства файла
- 5.1, изменение режима файла chmod
- 5.2, изменить владельца и группу файлов Chown
- 5.3, измените файл Последнее время модификации и последнее время доступа
- 5.4, измените имя файла Переименовать
- Интеллектуальная рекомендация
- Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)
- Создайте многоканальное окно в приложениях Win32
- Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование
- Tree——No.617 Merge Two Binary Trees
- Folder operation under linux
- Related API functions
- opendir(3)
- closedir(3)
- readdir(3)
- Code example:
- The realization principle of file redirection
- Related API functions
- dup2(2)
- Code example
- File lock
- Related usage
- Code example
- The relationship between library functions and system call functions
- Specific instructions
- Code example
- linux process basics
- Related API
Opendir c linux example
На одном из почтовых серверов у меня есть директория в которую складываются пришедшие письма. За некоторое время количество файлов в этой директории начинает превышать несколько тысяч и стандартной командой удаления rm *.eml удалить ничего не получается:
Связано это с тем, что Bash из маски *.eml делает длинную строку из списка файлов с расширением eml, поэтому количество аргументов для команды rm превышает допустимое количество. Естественно удалить такое количество файлов можно с использованием других команд, но интерес не в этом, а в том чтобы разобраться с функциями чтения директорий.
Итак, приступим. Для работы с директориями необходимо подключить файлы:
Директория сама по себе представляет файл состоящий из специальных записей dirent, которые содержат данные о файлах в директории:
Данная структура содержит имя файла d_name, порядковый номер файла d_ino в файловой системе и несколько других. Разберемся.
Для работы с директориями необходимо определить переменную типа DIR (по смыслу она похожа на тип FILE). Для открытия/закрытия директорий существует две функции:
Функция opendir() открывает директорию для чтения с именем name и возвращает указатель на directory stream (иногда сложно перевести со смыслом, директорный поток или поток директории ?), при ошибке возвращает NULL и соответствующим образом устанавливает код ошибки errno. Функция closedir() без комментариев.
Чтение из этого файла-директории осуществляется функциями со схожими названиями:
Первая функция readdir() возвращает следующую структуру dirent считанную из файла-директории. При достижении конца списка файлов в директории или возникновении ошибки возвращает NULL. Вторая функция должна использоваться для чтения содержимого директорий при разработке программ работающих в мультипоточном режиме.
Давайте попробуем прочитать какую-нибудь директорию:
Компилируем и запускаем:
Из всего этого думаю полезностей извлечь можно не много. Думаю кроме имени файла d_name ничего особо полезного нет, но собственно больше ничего и не надо. Как и было написано в man 3 readdir поле d_type многие файловые системы не устанавливают (в примере используется reiserfs), а жаль. Судя по описанию уже по этому полю можно было бы определить тип записи: файл, директория или символьная ссылка. Ну ничего страшного.
Источник
BadproG.com
Navigation
Main menu
C++ — Qt Framework — Using QOpenGLWidget to display a window for moving shapes with keyboard and mouse
In the past tutorials about Qt and OpenGL we saw how to deal with some basic tasks.
Let’s see this time something a bit more advanced with the QOpenGLWidget class in order to display a scene from a window with a shape.
C++ — Qt Framework — Using OpenGL texture with index array
Playing with colors can be fun but what about textures?
What about something really realistic?
In this OpenGL tutorial for Qt we are going to apply a texture on our dear triangles.
C++ — Qt Framework — Using 1 OpenGL VAO and 2 VBOs with only 1 array for both position and color of each vertex
As we saw, in the last tutorial about using a VAO and VBO to handle 2 different objects on the scene with OpenGL, it’s possible to have 2 arrays of vertex: one to manage the position and one to deal with the color.
C++ — Qt Framework — Using OpenGL VAO and VBO to handle 2 different objects on the scene
VAO (Vertex Array Object) and VBO (Vertex Buffer Object) were introduced to help programmers since OpenGL 3.0.
So it’s not a recent features but if you just started learning OpenGL it could be very complex to understand.
Android — API — Creating a Spinner with colors as choices
With Android we haven’t a classic ComboBox like in other frameworks but we have instead a Spinner.
Actually it’s exactly the same and only the name differs.
Python 3 — PySide2 — Setting up and using Qt Designer
PySide2 is a Python API for the Qt framework.
This API is made with Shiboken2, the Python binding generator.
It means that you can write your code in Python and use the Qt framework as you’d do with C++.
C++ — Boost — Converting std::vector to Boost.Python Numpy ndarray
You have a C++ std::vector and you want to convert it to a Boost.Python Numpy ndarray.
But, once the ndarray got, you want to get back to the C++ array.
Let’s see that in this Boost.Python tutorial.
C++ — Boost — Using Boost.Python Numpy from_data()
If you are using Python then NumPy is quite interesting for manipulating arrays.
But how do we do that with C++ and Boost.Python NumPy extension?
C++ — Boost — Building the Boost.Python NumPy extension as a library
If you are a scientist and interested in Python, you certainly already know the NumPy package.
In this tutorial I’ll propose to explain how to install it on Windows in order to be used with the Boost.Python library.
We’ll also make an Hello world example.
C++ — Boost — Using Boost.Python library on Windows to create a DLL
Communication between 2 different language isn’t so easy.
It’s often possible to find libraries to help us achieve this behaviour.
Источник
Русские Блоги
Программирование системы Linux (5): операция каталога (OpenDIR, READDIR, CONDECIR, STAT)
1, роль Ls
Команда LS в основном используется с информацией, связанной с выходным каталогом. Включение текущего каталога содержит файлы, режим файла, принадлежит и тому подобное.
2, связанный системный звонок
2. Откройте каталог Opendir
opendir | |||||||||||||||||||||||||||||||||||||||||
цель | Откройте каталог в соответствии с именем каталога | ||||||||||||||||||||||||||||||||||||||||
главный файл | #include #include | ||||||||||||||||||||||||||||||||||||||||
Функциональный прототип | DIR *opendir(const char *name) | ||||||||||||||||||||||||||||||||||||||||
параметр |
readdir | |||||||||||||||||||||||||||||||||
цель | Прочитайте файл в каталоге | ||||||||||||||||||||||||||||||||
главный файл | #include | ||||||||||||||||||||||||||||||||
Функциональный прототип | struct dirent *readdir(DIR *dirp); | ||||||||||||||||||||||||||||||||
параметр |
closedir | ||||||||||||||||||||||||||
цель | Закройте каталог | |||||||||||||||||||||||||
главный файл | ||||||||||||||||||||||||||
Функциональный прототип | int closedir(DIR *dirp); | |||||||||||||||||||||||||
параметр |
stat | |||||||||||||||||||
цель | Получить свойства файла | ||||||||||||||||||
главный файл | |||||||||||||||||||
Функциональный прототип | int result = stat(char * fname, stuct stat * bufp) | ||||||||||||||||||
параметр |
chmod | ||||||||||||
цель | Изменить разрешение на лицензию и специальные свойства | |||||||||||
главный файл | ||||||||||||
Функциональный прототип | int result = chmod(char* path, mode_t mode) | |||||||||||
параметр |
chown | ||||||||
цель | Изменить владельца и группу файла | |||||||
главный файл |
utime | ||||
цель | Измените время последнего изменения последнего изменения файла и последнего доступа | |||
главный файл |
rename | |
цель | Измените имя файла или местоположение мобильного файла |
главный файл |