-
Файлови дескриптори (File descriptors)
- Цяло положително число, идентифициращо отворен файл в операционната система.
- Всеки UNIX процес има 3 стандартни file descriptor-a
Integer value Name <stdio.h> file stream[2] 0 Стандартен вход (Standard input) stdin 1 Стандартен изход (Standard output) stdout 2 Стандартен изход за грешки (Standard error) stderr -
Функции за работа с файлови дескриптори
-
int open(const char *pathname, int flags) - man 2 open
- Отваря файл от подаден път (pathname) и връща file descriptor идентифициращ този файл
- Вторият аргумент - flags се използва за определяне на режима на работа с файла - примерно O_RDONLY флагът отваря файла в режим само за четене.
- Всички флагове са описани в man page-овете.
- TODO: добави ги и тук
-
int close(int fd) - man 2 close
- Затваря отворен file descriptor
- При грешка връща -1, а иначе 0
-
ssize_t read(int fd, void *buf, size_t count) - man 2 read
- Чете N на брой байтове (count) от file descriptor и ги запаметява в даден буфер (buf)
- При грешка връща -1, а при успех - броят на прочетените байтове.
-
ssize_t write(int fd, void *buf, size_t count) - man 2 write
- Чете N на брой байтове (count) от буфер и ги записва в даден file descriptor. При грешка връща -1, а при успех - броят на прочетените байтове.
-
off_t lseek(int fd, off_t offset, int whence) - man 2 lseek
- Задава позиция в file descriptor; като аргументи получава file descriptor-а (fd), с колко байта да се отмести позицията на четене в него (offset) и спрямо къде да се смята отместването (whence).
- Whence може да е един от следните 3 аргумента:
SEEK_SET
- Спрямо началото на файлаSEEK_CUR
- Спрямо сегашната позиция във файлаSEEK_END
- Спрямо краят на файла
-
-
Задача 1 - "cat"
-
Задача 2 - "cp"
-
Задача 3 - "head"
This repository has been archived by the owner on Oct 26, 2024. It is now read-only.