Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Дополнительные средства ввода-вывода
int link (char *name1, char *name2) с физическим файлом может быть связано несколько имен. Первое имя файл получает при создании. Последующие имена (ссылки) образуются при помощи системной функции link. Параметр name2 – это альтернативное имя для файла с именем name1. Функция link возвращает 0 либо –1, если создать ссылку не удалось (например, файл name2 уже существует).
int unlink (char *name) функция unlink удаляет элемент оглавления, соответствующий файлу, имя которого задано параметром name. Если это была последняя ссылка на файл, то файл уничтожается. Функция unlink возвращает 0 либо –1, если файла не существует или он не может быть уничтожен.
long lseek (int fd, long offset, int origin) ввод-вывод обычно бывает последовательным, т.е. каждая очередная операция чтения-записи начинается с позиции, следующей за обработанной в предыдущей операции. Однако, при желании, можно читать файл в произвольном порядке. Системная функция lseek предоставляет способ передвигаться по файлу, не читая и не записывая данные. Функция lseek в файле с дескриптором fd устанавливает текущую позицию, смещая ее на величину offset относительно места, задаваемого значением origin. Если origin равно 0, то смещение происходит от начала файла; если 1 – относительно текущей позиции; если 2 – от конца файла. Например, если требуется добавить данные в конец файла, то прежде чем что-либо записывать в файл, нужно при помощи lseek(fd, 0L, 2) найти конец файла. Чтобы вернуться в начало файла, надо выполнить lseek(fd, 0L, 0). Возвращаемое функцией lseek значение имеет тип long и равно установленной текущей позиции файла (последующие чтение или запись будут производиться с этой позиции). В случае ошибки lseek выдает -1. Благодаря lseek с файлами можно работать как с большими массивами с замедленным доступом.
int stat (char *name, struct stat *buf) с помощью функции stat можно получить информацию о состоянии файла name. Структура stat описана в < sys/stat.h>. В этом файле также определены константы, которые можно использовать при работе с полями структуры stat. struct stat { dev_t st_dev; /* устройство */ ino_t st_ino; /*номер inode */ unsigned short st_mode; /* это поле определяет, является ли данный файл обычным файлом, оглавлением, специальным блочным или специальным литерным; кроме того, st_mode содержит биты, определяющие полномочия */ short st_nlink; /* число связей */ short st_uid; /* идентификатор владельца */ short st_gid; /* идентификатор группы владельца */ dev_t st_rdev; /* для специальных файлов */ off_t st_size; /* размер файла в литерах */ time_t st_atime; /* время последнего чтения из файла */ time_t st_mtime; /* время последней записи в файл (или время его создания). На это поле не влияют изменения владельца, группы или полномочий*/ time_ st_ctime; /* это время устанавливается при записи в файл или при изменении владельца, группы или полномочий */ } #define S_IFMT 0170000 /* маска для выделения типа файла */ #define S_IFDIR 0040000 /* оглавление-каталог */ #define S_IFCHR 0020000 /* символьно-ориентированный */ #define S_IFBLK 0060000 /* блочно-ориентированный */ #define S_IFREG 0100000 /* обычный файл */ #define S_IREAD 0000400 /* право на чтение для владельца */ #define S_IWRITE 0000200 /* право на запись для владельца */ #define S_IEXEC 0000100 /* право на выполнение для владельца */ Более подробную информацию о структуре stat и связанных с ней константах см. в файле < sys/stat.h>. Типы, подобные dev_t и ino_t, определены в < sys/types.h>. Системный вызов stat по имени файла name возвращает полную информацию о нем, содержащуюся в inode, или –1 в случае ошибки. Итак, #include < sys/types.h> #include < sys/stat.h> … struct stat stbuf; char *name = “my_file”; … stat(name, & stbuf); заполняет структуру stbuf информацией о файле my_file.
|