DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Системнi виклики opendir, readdir, closedir, rewinddir, seekdir, telldir та scandir.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Проектування операційних систем, утиліт і драйверів
Група:
СПР-5

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти України НУ “Львівська політехніка” Кафедра ЕОМ Звіт про виконання лабораторної роботи №3 з дисципліни “Проектування операційних систем, утиліт і драйверів” Назва роботи: “Системнi виклики opendir, readdir, closedir, rewinddir, seekdir, telldir та scandir” Виконав: студент групи СПР-5 Львів – 2004 Мета: Ознайомитися і навчитися використовувати функції для роботи з директоріями opendir, readdir, closedir, rewinddir, seekdir, telldir, scandir операційної системи Linux. Ознайомитись (чи згадати і закріпити) з механізмом передачі параметрів у програму. Вихідний текст програми #include <stdio.h> #include <string.h> #include <dirent.h> #define NAME_LENGTH 256 #define USING "using: \"labor3 <dir_name>\"\n" #define ERROR "error while reading directory\n" void processDir(DIR *); int main(int argc, char **argv) { DIR * dir; if (argc != 2) { fprintf(stderr, USING); exit(-1); } else if ((dir = opendir(argv[1])) == 0) { fprintf(stderr, ERROR); exit(-1); } processDir(dir); closedir(dir); exit(0); } void processDir(DIR * dir) { struct dirent * dirEntry; int i = 0; while((dirEntry = readdir(dir)) != NULL) { printf("%4d\t%s\n", i++, dirEntry->d_name); } } На вхід програми подається ім’я директорії (якщо воно містить пробіли, то береться в подвійні лапки). Вихід – на консоль виводиться список елементів заданої директорії. Призначення, синопсис та основні параметри системних викликів DIR *opendir(const char *name) – відкрити директорію для читання; int closedir(DIR *dir) – закрити директорію; readdir – читання елемента директорії _syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count); int readdir(unsigned int fd, struct dirent *dirp, unsigned int count); struct dirent { long d_ino; /* inode number */ off_t d_off; /* offset to this dirent */ unsigned short d_reclen; /* length of this d_name */ char d_name [NAME_MAX+1]; /* file name (null-terminated) */ } struct dirent *readdir(DIR *dir); void rewinddir(DIR *dir) – скид потоку директорії (встановлення вказівника на перший void seekdir(DIR *dir, off_t offset) – встановити позицію для наступного виклику readdir() в потоці директорії. void telldir(DIR *dir) – повернення поточного розташування в потоці директорії. int scandir(const char *dir, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **)) – сканування директорії на виявлення вмісту; int alphasort(const struct dirent **a, const struct dirent **b) – функція для порівняння двох елементів директорії. Висновок В процесі виконання даної лабораторної роботи я ознайомився із системними викликами ОС Linux, які використовуються для роботи із директоріями файлової системи. Список літератури Кейт Хевіленд, Дайна Грей, Бен Салама “Системное программирование в Unix”. Москва 2000. Електронні ресурси кафедри ЕОМ.
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!