Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Как узнать что файл освобожден?


Автор: andrew_121 7.8.2009, 22:04
Здравствуйте.

Некий процесс создает файл, и записывает в него данные.
Нужно узнать, что процесс прекратил записывать, и закрыл файл, без libevent и inotify.

Спасибо.

Автор: ller 7.8.2009, 22:13
Если файл твой, то может семофоры помогут?

Добавлено через 35 секунд
В смысле оба процесса написанны тобой

Автор: andrew_121 7.8.2009, 22:27
Нет. Тот процесс что пишет в файл, не мой.

Автор: ller 7.8.2009, 23:40
есть команда lsof можно рыть в этом направлении

Автор: andrew_121 7.8.2009, 23:48
Цитата(ller @  7.8.2009,  23:40 Найти цитируемый пост)
есть команда lsof

Не знал.
Спасибо, иду рыть smile

Автор: ller 7.8.2009, 23:51
http://rus-linux.net/kos.php?name=papers/saha-processes-ru.html
Можно еще тут почитать, но это как я понял только на локальной машине

Автор: andrew_121 8.8.2009, 00:37
Гм... Один момент я упустил.

Опишу всю задачу.
Есть каталог, в него кладутся торрент файлы. Есть торрент-клиент(rTorrent). Он настроен таким образом, чтоб сканировать этот каталог на предмет появления в нем торрент-файла. Когда в этом каталоге появляется новы торрент-файл, клиент добавляет его в закачку.
Так вот. Нужно чтоб каждая закачка(в не зивисимости от того что это(каталог с файлами или фалы без каталога)), закачивалась в созданный для нее каталог.
Но, так как этого сделать не возможно не изменяя кодов клиента, я хотел скачивать контент во временный каталог, и по завершении закачки перемещать его в целевой каталог. Но тут проблемма. Если я контент переместил, то клиент не сможет найти его.

Интересует мнение других людей.

Спасибо!

Автор: vinick 8.8.2009, 08:03
А если так сказать отделить мух от котлет. Пусть торрент-клиент качает все в один каталог, а вместо копирования в целевой каталог делать симлинки.  Получится в одном месте помойка с которой будет работать торрент, а в другом человеческая структура на симлинках

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)