Формат файла TORRENT — описание, как открыть?
Файл формата TORRENT открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ.
Чем открыть файл в формате TORRENT
Расширение TORRENT представляет собой физический адрес единичного файла или группы файлов, адаптированных под программную утилиту BitTorrent, которая предназначена для обмена данными в P2P-сетях (пиринговые сети).
Для уменьшения пропускной способности, которую использует первичный сервер, и ускорения длительности загрузки, BitTorrent может распределяться одновременно между несколькими узлами. Примечательно также, что отсутствует необходимость группировать загружаемые файлы в одной локации: они могут подгружаться с разных мест единовременно.
В процессе обмена данными протокол BitTorrent одновременно рассматривает каждого пользователя, как получателя, так и распространителя торрент-файлов. Пользователь не только подгружает BitTorrent-архив, он также способствует перераспределению его между другими пользователями. Таким образом, возможность перекачки архива без трансляции части данных попросту отсутствует. Единственное, как можно блокировать такую инициативу – это задать ограничение на пропускную способность.
НЕ ИСПОЛЬЗУЙ ТОРРЕНТ
Большой популярностью закачки с использованием BitTorrent пользуется разнообразный мультимедийный контент (музыкальные композиции, игровые плагины, видеоклипы в формате AVI и MPEG4). Часть из них находится в свободном доступе и распространяется безвозмездно, часть должна быть оплачена.
Программы для открытия TORRENT файлов
TORRENT-расширение может быть сгенерировано и открыто для редактирования с использованием следующего ПО:
Для того, чтобы воспроизвести расширение в ОС Linux необходимо использовать:
Если при открытии расширения TORRENT возникает ошибка, причины могут заключаться в следующем:
— поврежден или инфицирован файл;
— файл не связан с реестром ОС (выбрано некорректное приложение для воспроизведения или не произведена инсталляция конкретного плагина);
— недостаточно ресурсов устройства или ОС;
— поврежденные или устаревшие драйвера.
Конвертация TORRENT в другие форматы
Так как .TORRENT – типовой текстовый файл, включающий инструкцию в части протокола BitTorrent или P2P-клиентов, где доступен “трекер” на передачу данных, он не поддается трансляции в другие расширения и не может быть конвертирован в другой формат представления данных.
BitTorrent – программный плагин, поддерживающий расширение TORRENT, и специально предназначенный для максимального облегчения взаимодействия и обмена данными в пиринговых сетях (P2P-сетях).
Основная цель TORRENT формата – закачка из сети различного рода мультимедийного контента, включая игровые программы, видеофильмы, музыку в цифровом виде.
Тип файла: BitTorrent File Разработчик: BitTorrent Категория: Другие файлы
URL-адрес файла или группы файлов, загружаемых с помощью BitTorrent — пиринговой (P2P) программы распространения файлов. Может загружаться из различных мест одновременно. Загрузки BitTorrent разбиваются между различными узлами, что сокращает пропускную способность, используемую сервером-источником и ускоряет время загрузки.
К популярными типам файлов, загружаемых при помощи BitTorrent, являются цифровые фильмы и ТВ-шоу, музыка и видео-игры. Некоторые из них предлагаются как бесплатные загрузки, некоторые должны оплачиваться.
Чем открыть файл в формате TORRENT (BitTorrent File)
Источник: www.azfiles.ru
Файл формата TORRENT — что это?
Файл .torrent является адресом определенного файла или группы файлов, которые загружаются с использованием утилиты BitTorrent в целях обмена файлами в пределах пиринговых сетей. Загрузки файлов могут быть произведены из нескольких мест за один раз. Торрент клиент позволяет распределять раздачи на несколько узлов, что способствует ускорению времени загрузки файлов TORRENT.
При обмене .torrent файлов в протоколах BitTorrent, могут участвовать различное количество пользователей, одни из которых будут получать файлы, а другие — распространять. Особенность торрент файлов заключается в том, что в период скачивания содержимого архива BitTorrent, пользователи одновременно оказывают помощь в его передаче между другими пользователями. Данный формат файла невозможно преобразовать в какое-либо прочее расширение файла. Такой тип файла включает в себя инструкции для торрент-клиентов (BitTorrent, uTorrent и т.д.), они занимаются поиском соответствующего трекера, содержащего требуемые для пользователей архивы и файлы.
Скачивать торрент может любой пользователь, установивший на свой компьютер или ноутбук, необходимый торрент-клиент. Среди популярного контента, который скачивают через программы uTorrent, BitTorrent и прочие клиенты, выделяют разнообразные фильмы, музыку и игры. Подобный контент можно скачать бесплатно, однако встречаются и раздачи файлов на платной основе. В некоторых случаях, чтобы скачать торрент без дополнительных финансовых затрат, потребуется определенное время, ведь скорость скачивания может быть достаточно низкой. Открыть файл с расширением TORRENT, можно при помощи разнообразных торрент-клиентов, скачивание файлов с их применением, является весьма распространенным видом загрузки контента в сети.
Программы для работы с TORRENT в Windows
ComboPlayer
BitTorrent
Яндекс Браузер
Vuze (Azureus — Java BitTorrent Client)
Mac
BitTorrent
Transmission
Eltima Folx 4
Tomato Torrent
Linux
Transmission
BitTornado
Android
Delphi Softwares Flud
Решение проблем с файлами TORRENT
Наиболее распространенная проблема — файл не открывается. Мы подготовили набор программ, с помощью которых вы гарантированно сможете открыть нужный файл в вашей операционной системе.
Иногда просто открыть файл — недостаточно. Если вам нужно его отредактировать — скачайте одну из бесплатных программ:
Видео форматы
Аудио форматы
Электронные книги
Текстовые форматы
Дисковые образы
Табличные данные
Растровые изображения
Векторные изображения
Резервное копирование
Raw
Сжатые файлы
Файлы данных
Базы
3D Изображения
CAD файлы
Файлы разработчиков
Зашифрованные файлы
Исполняемые форматы
Шрифты
Файлы игр
GIS, карты
Другие расширения
Форматы макетов
Форматы плагинов
Файлы настроек
Системные файлы
Веб форматы
Источник: filesreview.com
Как пользоваться торрентом: инструкция для начинающих
Сегодня крайне трудно было бы найти пользователя ПК, который ни разу не слышал бы о программе μTorrent, по крайней мере, в пределах России. Данная программа чрезвычайно полезна при скачивании чего-либо из интернета и сегодня стала неотъемлемой частью повседневной жизни многих людей. Однако всё же остаются и те, кто ни разу не слышал о ней. Именно для таких людей и была написана данная статья, которая расскажет им, как пользоваться торрентом. Пошаговая инструкция, представленная здесь, поможет вам не только скачать и установить μTorrent, но и расскажет обо всех нюансах работы с ним.
Что такое BitTorrent
Чтобы понять,чем так хороши загрузки через торрент, и как пользоваться торрентом, для начинающих пользователей было бы неплохо разобраться в принципах работы данной системы. Официальное название этой системы –BitTorrent, она была изобретена ещё в далёком 2001 году, но до сих пор ни капли не потеряла в своей популярности, что ещё раз говорит нам о её несомненной полезности. Принцип её работы довольно прост.
Когда вы скачиваете файл каким-либо другим способом, то вам приходится загружать весь файл целиком за одну загрузку с какого-то одного сервера. Но только не в системе BitTorrent, которая работает абсолютно по другому принципу.
Когда вы скачиваете файл через неё, вы берёте его по маленьким кусочкам с компьютеров тех людей, которые в своё время тоже скачали его и поставили на раздачу. Чем больше таких вот раздающих файл пользователей, тем быстрее происходит его загрузка. К слову, скачивая файл на свой ПК, вы также становитесь раздатчиком этого файла, тем самым ещё больше повышая скорость его скачивания. Сами же торрент файлы, которые вы скачиваете из интернета, служат лишь для того, чтобы найти все актуальные на данный момент раздачи и подключить ваш ПК к ним.
Такой метод имеет массу преимуществ, главное из которых это, конечно же, высокая скорость скачивания. На самом деле, при достаточно большом количестве раздающих файл ПК, скорость скачивания торрента можно считать неограниченной и зависеть она будет лишь от качества вашего интернет-соединения. Разумеется, есть и такие сервера, которые специально занижают скорость скачивания, таким образом принуждая клиентов покупать платные подписки, якобы расширяющие их возможности. В таком случае лучше просто найти другой сервер.
Есть и другие плюсы у торрент скачиваний кроме высокой скорости. Благодаря тому, что файл скачивается по кусочкам, вы в любой момент можете поставить загрузку на паузу и выключить ваш ПК, а затем, включив его, продолжить с того же момента. По этой же причине вы будете защищены от обрыва сети и различного рода незапланированных прерываний загрузки.
Это всё, что вам стоит знать о данной системе для комфортной работы с ней.
Что такое торрент-клиент
Теперь, когда мы разобрались с тем, как устроена система BitTorrent, пора узнать и о том, что же такое торрент-клиент. Торрент-клиент (или правильнее BitTorrent-клиент) – это программа, служащая для работы с файлами формата .torrent, и скачивания файлов через BitTorrent-соединение.
На данный момент существует множество различных BitTorrent-клиентов. В целом они мало чем отличаются друг от друга, но давайте всё же рассмотрим наиболее популярные из них, чтобы затем каждый из вас смог выбрать наиболее подходящий для себя.
- μTorrent. Наверное, самый успешный из всех торрент-клиентов. Он появился довольно давно, ещё в 2005 году, а его разработчиком стали BitTorrentInc. и на данный момент количество его пользователей давно перевалило за сто миллионов. Главная причина такого успеха – это, пожалуй, простота и надёжность данной программы, проверенная годами. В интернете она представлена в бесплатном виде, и скачать её можно прямо с сайта разработчиков.
- Tixati. Небольшой по размерам клиент с активной поддержкой разработчиков. Главными его плюсами можно назвать высокую скорость работы (не скачивания, оно как у всех), стабильность и крайне малое потребление оперативной памяти. У данного приложения есть лишь один существенный минус — оно полностью на английском и появление русификатора в ближайшее время не предвидится.
- qBittorent. Разработчики же данного клиента, по всей видимости, делали упор на простоту. В результате чего получился торрент-клиент без каких-либо лишних функций или дополнений. В отличие от большинства торрент-клиентов, qBittorent не предоставляет пользователю возможности создавать свои торрент-файлы, а только скачивать, в нём нет графиков, позволяющих отслеживать процесс скачивание файла, а функционал снижен до минимума. Отличный вариант для новичков в использовании компьютера, с ним как разобраться с торрентом даже чайникам будет понятно.
- Zona. Довольно новая и интересная программа, торрент-клиент с каталогом файлов. В чём её особенность? Во первых, это достаточно редкий для торрент-клиентов встроенный видеоплеер, позволяющий пользователю смотреть фильмы и слушать музыку в процессе их скачивания. Во вторых, встроенная база торрент файлов, что позволяет не только запускать на нём загрузку файлов, скачанных из интернета, но и искать их прямо внутри клиента в предложенном каталоге (кстати, весьма неплохом как по разнообразию, так и по оформлению). К сожалению, из-за всего этого клиент получился весьма увесистый и медлительный. Кроме того поначалу разобраться в его работе может быть довольно трудно.
В данном списке представлены наиболее популярные варианты торрент-клиентов, но далеко не все. И если вам приглянется какой-либо другой, то вы вполне можете использовать его, как уже говорилось ранее, кардинально повлиять на качество скачивания это не должно.
Также стоит отметить, что кроме того, как пользоваться торрентом на компе, вы можете использовать его и на смартфоне, так как у большинства популярных клиентов есть мобильные версии.
Видео о том, как пользоваться торрентом
Как пользоваться торрентом: пошаговая инструкция по работе с трекерами
Теперь, когда вы уже знаете, что такое торрент и торрент-клиент, остаётся всего одно неизвестное для вас понятие — торрент-трекер. Торрент-трекер – это непосредственно сайт, предоставляющий вам для загрузки торрент-файлы. На данный момент в интернете присутствует масса различных торрент-трекеров, большинство из которых специализируются на какой-то конкретной тематике (игры, фильмы, музыка, программы и т.д.). Однако есть и более крупные сайты, на которых представлены торрент-файлы самых различных тематик, форматов и типов.
- Torzilla.ru – универсальный трекер с самой широкой базой данных среди всех.
- Free-torrents.ru – на данном сайте собраны торрент файлы по самым различным тематикам.
- Rutor.org – один из самых популярных торрент-трекеров в России, содержит разнообразные файлы на русском языке.
- Torrentino.com – самый удобный из всех представленных трекеров, с каталогом, разбитым на категории и удобным интерфейсом.
Чтобы скачать файл с торрент-трекера достаточно вбить его название в строке поиска, либо же найти самостоятельно. После чего просто найдите кнопку скачать (обычно они зелёные со значком μTorrent) на странице нужного вам файла и нажмите на неё, а затем выберите папку для его сохранения (торрент–файлы весят очень мало, а потому можете не волноваться по поводу места для него).
Будьте внимательны, так как многие сайты создают ложные кнопки скачивания и таким образом пытаются подсунуть вам свой торрент-клиент или программы, от которых потом придётся избавляться. Обычно внизу таких кнопок мелким шрифтом написано что-нибудь вроде “скачать с помощью MediaGet”. Настоящие же кнопки обычно располагаются внизу или вверху страницы.
Теперь, когда вы полностью изучили теоретическую часть работы с системой и даже скачали необходимый торрент-файл, давайте поподробнее разберемся, как пользоваться торрентом. Пошаговая инструкция, представленная далее, будет рассмотрена на примере работы с клиентом μTorrent, если вы используете другой клиент, то постарайтесь по возможности придерживаться тех же инструкций и на нём.
- Для начала вам, конечно же, понадобится скачать и установить торрент-клиент. Большинство торрент-клиентов являются бесплатными и лучше всего скачивать их с официального сайта.
- Во время установки клиента просто следуйте инструкциям, и когда вам предложат вариант сделать данный клиент клиентом по умолчанию для всех файлов формата .torrent, соглашайтесь.
- Затем, когда клиент будет установлен, найдите ваш торрент-файл и запустите его. Если во время установки вы всё сделали правильно, то торрент-клиент должен открыться автоматически. Если же он не открывается, то вы можете нажать на него правой кнопкой мыши, затем выбрать пункт “Открыть с помощью…” и среди предложенных программ выбрать ваш торрент-клиент. Также вы можете запустить клиент вручную, а затем в верхнем левом углу нажать на “Файл” и “Добавить торрент…”, после чего просто найдите ваш торрент-файл в появившемся окне.
- Далее перед вами откроется окно, где вы сможете узнать размер скачиваемых файлов, выбрать папку, в которую они будут загружены, а также, если вы не хотите устанавливать все файлы, предложенные торрентом, выбрать только те, которые хотите скачать (например, если вы нашли торрент-файл сразу нескольких сезонов сериала, а вам нужен только первый).
- После этого начнётся загрузка, по её завершению вы можете запустить скачанные файлы, нажав на них в окне загрузки или же вручную найдя папку, которую вы выбрали ранее.
Как вы видите, скачивать файлы через торрент совсем нетрудно и при желании любой желающий может самостоятельно разобраться, как пользоваться торрентом, пошаговая инструкция же нужна лишь для облегчения данного процесса.
Как пользоваться торрентом: инструкция для начинающих
Источник: sovety-pk.ru
Torrent-файл. Что же у него внутри?
Добрый день.
Использую, как и многие, крупный торрент-трекер — rutracker.org, однако есть одна особенность которая меня раздражает.
Это добавление в список трекеров адреса ix*.rutracker.net, который служит для непонятных мне целей. Однако который часто (у меня — практически всегда) выдаёт ошибки (502 Bad Gateway и 0 No Response). Торрент-клиент (у меня Transmission) помечает торрент сломанным. Что само собой довольно сильно мне мешает.
Особенно если учесть особенность Transmission — она задаёт статус торрента по последнему ответу трекера. То есть опрашиваем ix*, он возвращает ошибку, торрент помечается как Broken, через n минут/секунд опрашивается следующий трекер из списка — bt*.rutracker.org или retracker.local, которые возвращают успешный код и торрент снова становится нормальным. Такая чехарда не особо меня радует.
Решение банально — убрать этот нехороший адрес из списка. Однако файлов у меня много, из каждого вручную вырезать совсем не хочется, да и дополнительное действие при добавлении нового торрента выполнять тоже не было никакого желания. Поэтому принял решение разобраться в формате и автоматизировать удаление трекера из списка.
Bencode
Именно так называется формат кодирования данных в .torrent-файлах. Больше он почти нигде и не используется, мне попадался он на глаза так же в формате хранения resume-информации в Transmission.
Для большинства актуальных языков написаны библиотеки для работы с этим форматом, но не для C++, да, конечно, есть такая штука, но это чистый Си и кроме того форма представления мне не показалась удачной, поэтому написал простенький свой велосипед, ибо формат крайне прост.
Описываются 4 типа данных — массив байт, число, список, ассоциативный массив.
- Числа задаются в форме ie, — это цифры в ascii представлении, то есть 1 задаётся как ‘1’ или 0x31. Заметно что так мы можем задавать огромные числа, которые не влезут ни в long, ни в long long, однако большинство пренебрегают отсутствием лимита и используют 64-битные числа.
- Массив байт — : . Длина массива так же формируется неограниченной последовательностью цифр.
- Список — le. Элементом может являться любой из типов данных. В том числе и вложенный список. Конец, как видно из формата, отмечается литералом ‘e’.
- Ассоциативный массив — de. Каждый элемент массива выглядит таким образом — . Массив байт — это имя записи в форме из пункта 2. Элемент опять же может быть любым — список, массив, ассоциативный массив, число.
Это всё. Сам файл это последовательность таких записей. Поэтому декодирование крайне просто выполняется:
void CTorrentFile::ReadBencElement(ifstream parent, string name) < BencElement el; char c = fin.get(); el.name = name; if (c == ‘i’) < el.type = BencInteger; fin >> el.integer; m_tree.append_child(parent, el); > else if (c == ‘l’) < int l = fin.peek(); el.type = BencList; tree ::pre_order_iterator it = m_tree.append_child(parent, el); while (l != ‘e’) < ReadBencElement(fin, it, string(«»)); l = fin.peek(); >fin.seekg(1, ios_base::cur); > else if (c == ‘d’) < int l = fin.peek(); el.type = BencDict; tree ::pre_order_iterator it = m_tree.append_child(parent, el); while (l != ‘e’) < string name; int len; fin >> len; fin.seekg(1, ios_base::cur); while (len—) < char s = fin.get(); name += s; >ReadBencElement(fin, it, name); l = fin.peek(); > fin.seekg(1, ios_base::cur); > else if (c >= ‘0’ c > len; el.bstr.len = len; // skip ‘:’ fin.seekg(1, ios_base::cur); el.bstr.byteStr = new char[len + 1]; for (int i = 0; i < len; i++) < char s = fin.get(); el.bstr.byteStr[i] = s; >el.bstr.byteStr[el.bstr.len] = 0; m_tree.append_child(parent, el); > >
Кодирование тоже несложно:
void CTorrentFile::WriteBencElement(std::ofstream el) < tree ::sibling_iterator it; switch (el->type) < case BencInteger: fout integer bstr.len bstr.byteStr, el->bstr.len); break; case BencList: fout << ‘l’; it = m_tree.child(el, 0); for (size_t i = 0; i < m_tree.number_of_children(el); i++, ++it) WriteBencElement(fout, it); fout << ‘e’; break; case BencDict: fout << ‘d’; tree ::sibling_iterator it = m_tree.child(el, 0); for (size_t i = 0; i < m_tree.number_of_children(el); i++, ++it) < fout name.length() << ‘:’ name.c_str(); WriteBencElement(fout, it); > fout >
Структура .torrent-файла.
Как я уже писал выше для кодирования используется Bencode.
Стоит добавить что если массив байт может быть интерпретирован как строка (имена элементов в ассоциативном массиве, просто строковые поля), то используется кодировка utf-8.
- info — вложенный ассоциативный массив который собственно и описывает файлы, которые передаёт торрент.
- announce — URL для трекера. Наряду с info является обязательным полем, всё остальное — опционально.
- announce-list — список трекеров, если их несколько. В Bencode-виде — список списков.
- creation date — дата создания. UNIX Timestamp.
- comment — текстовое описание торрента. rutracker.org хранит здесь ссылку на тему форума.
- created by — говорит нам о том, кем создан данный торрент.
Необходимо упомянуть то, что файлы представлены в протоколе кусками. То есть файлы содержащиеся в торренте объединены в единый массив, и затем этот массив разделили на относительно небольшие кусочки. В таком виде данные обрабатывает BitTorrent-протокол.
- piece length — размер одного кусочка — 512 килобайт, 1 метр, и так далее. Слишком большое число кусков будет «раздувать» .torrent-файл.
- pieces — строка, которая содержит конкатенацию SHA1-хешей, описывающих каждый кусочек. Длина этой строки равна 20 * количество кусков.
- name — рекомендательное имя файла (если файл один) или директории. Увы многие торрент-клиенты воспринимают это как аксиому.
- length — если файл один, то будет задано это поле, которое содержит длину файла.
- files — если файлов несколько, то появится список ассоциативных массивов.
- length — длина файла.
- path — список из строк, которые задают путь. Каждая строка — элемент пути, относительно корневой директории торрента. Для пути a/b/c/d.jpg будет 4 строки в данном списке — [‘a’, ‘b’, ‘c’, ‘d.jpg’].
В общем-то это всё.
Нам в данный момент нужно только одно поле — announce-list. Пробегаясь по этому списку находим неугодный трекер и вырезаем его:
int CTorrentFile::RemoveTracker(const char * mask) < int deletedCount = 0; tree ::pre_order_iterator root = m_tree.child(m_tree.begin(), 0); tree ::sibling_iterator it = m_tree.child(root, 0); for (size_t i = 0; i < m_tree.number_of_children(root); i++, ++it) < if (it->type == BencString !it->name.compare(«announce») it->bstr.len > 0 it->bstr.byteStr) < if (wildcardMatch(it->bstr.byteStr, mask)) < it->bstr.len = 0; it->bstr.byteStr[0] = 0; deletedCount++; > > else if (it->type == BencList !it->name.compare(«announce-list»)) < tree ::sibling_iterator trackerList = m_tree.child(it, 0); for (size_t j = 0; j < it.number_of_children(); j++) < if (trackerList->type != BencList) < ++trackerList; continue; >tree ::sibling_iterator tracker = m_tree.child(trackerList, 0); for (size_t k = 0; k < trackerList.number_of_children(); k++) < if (tracker->type != BencString || tracker->bstr.len bstr.byteStr) < ++tracker; continue; >if (wildcardMatch(tracker->bstr.byteStr, mask)) < tracker = m_tree.erase(tracker); deletedCount++; >else ++tracker; > if (trackerList.number_of_children() == 0) trackerList = m_tree.erase(trackerList); else ++trackerList; > > > return deletedCount; >
Скомпонуем всё в один исходник:
Скачать — кроссплатформенный (win + *nix), нужен boost::filesystem.
Пользоваться просто:
torrentEditor , где шаблон — это wildcard-строка (‘*’ и ‘?’), для моего случая — http://ix*rutracker.net/*
Если в качестве имени файла подставить имя директории, то будет совершен рекурсивный обход по этой директории и модификация *.torrent файлов.
Бэкап для .torrent сохраняется в .old.
Демоны и watch-directory.
Таким образом мы можем пробежаться по существующим .torrent-файлам и вырезать трекер, однако что делать с новыми файлами?
Я использую удобную штуку — watch directory. Кидаем туда .torrent и клиент обнаружив его в этой папке, сам автоматически добавит его к себе.
Однако мне совсем не хочется предварительно вырезать трекер, а желаю автоматизировать это дело.
Поэтому написал простенький демон, который мониторит собственную watch directory, удаляет трекер и кидает файл в watch directory торрент-клиента.
Для меня как пользователя абсолютно ничего не поменялось, кидаю файлы в ту же папку, получаю на выходе торрент в клиенте.
Демона пишем на Си с использованием замечательной штуки — inotify,
notifyDesc = inotify_init(); if (notifyDesc < 0) exit(EXIT_FAILURE); watchDesc = inotify_add_watch(notifyDesc, argv[1], IN_CREATE); if (watchDesc < 0) exit(EXIT_FAILURE); // endless loop while (1)
Инициализируем модуль с помощью inotify_init(), затем добавляем директорию для слежения inotify_add_watch(), нас интересует только создание файла, поэтому указываем флажок IN_CREATE. А затем крутим бесконечный цикл слежения за директорией.
static void processEvents(int wd, char * moveDir, char * pattern, char * watchDir) < #define BUF_SIZE ((sizeof(struct inotify_event) + FILENAME_MAX) * 10) int len, i = 0; char buf[BUF_SIZE]; // blocked read, we wake up when directory changed len = read(wd, buf, BUF_SIZE); while (i < len) < struct inotify_event * ev; ev = (struct inotify_event *) processNewFile(ev->name, moveDir, pattern, watchDir); i += sizeof(struct inotify_event) + ev->len; > >
Блокирующий вызов read() вернёт нам управление как только произойдут нужные нам изменения в одной из директорий, за которыми следим. Таким образом мы абсолютно не грузим процессор во время ожидания.
Сама обработка файла не представляет из себя ничего интересного — пара вызовов rename() и один вызов system().
Демонизация тоже стандартна:
// create child-process pid = fork(); // error? if (pid < 0) exit(EXIT_FAILURE); // parent? if (pid >0) exit(EXIT_SUCCESS); // new session for child sid = setsid(); if (sid < 0) exit(EXIT_FAILURE); // change current directory if (chdir(«/») < 0) exit(EXIT_FAILURE); // close opened descriptors close(STDIN_FILENO); close(STDOUT_FILENO); close(STDERR_FILENO);
Источник: habr.com