Взял нижеприведенный примерчик из доков из файла dnotify.txt. Просто скомпилировал и запустил. При создании файлов в директории не происходит ни каких событий. Обидно :( Не могу понять почему. Может кто знает? Может так какие ключи при компиляции или ядро надо заново скомпилировать с специальными настройками? Пробовал на RH7.3 и на Mandrake8.2
#define _GNU_SOURCE /* needed to get the defines */
#include <fcntl.h> /* in glibc 2.2 this has the needed
values defined */
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
static volatile int event_fd;
static void handler(int sig, siginfo_t *si, void *data)
{
event_fd = si->si_fd;
}
int main(void)
{
struct sigaction act;
int fd;
act.sa_sigaction = handler;
sigemptyset(&act.sa_mask);
act.sa_flags = SA_SIGINFO;
sigaction(SIGRTMIN, &act, NULL);
fd = open(".", O_RDONLY);
fcntl(fd, F_SETSIG, SIGRTMIN);
fcntl(fd, F_NOTIFY, DN_MODIFY|DN_CREATE|DN_MULTISHOT);
/* we will now be notified if any of the files
in "." is modified or new files are created */
while (1) {
pause();
printf("Got event on fd=%d\n", event_fd);
}
}
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум signal (2005)
- Форум Продолжим про исключения!! (2007)
- Форум POSIX таймеры (2011)
- Форум Помогите разобраться с потоками (2003)
- Форум помогите разобраться (2005)
- Форум Немного о forced umount (2003)
- Форум tcc gnu getline в рот мне ноги (2013)
- Форум C++ и исключение abi::__forced_unwind (2017)
- Форум Создание списка в gtk (2010)
- Форум Про сигналы и исключения (2013)