URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3515
[ Назад ]

Исходное сообщение
"Можно ли Линухе блокировать процесс до появления файлов в директории? "

Отправлено Alexzy , 26-Окт-04 10:02 
Существует ли в Линуксе механизм разблокировки процесса/потока по критерию появления в директории файлов?

Содержание

Сообщения в этом обсуждении
"Можно ли Линухе блокировать процесс до появления файлов в ди..."
Отправлено tian , 26-Окт-04 12:00 
>Существует ли в Линуксе механизм разблокировки процесса/потока по критерию появления в директории
>файлов?

man fcntl


"Можно ли Линухе блокировать процесс до появления файлов в ди..."
Отправлено Alexzy , 26-Окт-04 13:45 

>man fcntl

Это конечно все здорово, а поконкретнее?


"Можно ли Линухе блокировать процесс до появления файлов в ди..."
Отправлено foxru , 26-Окт-04 16:29 
>Существует ли в Линуксе механизм разблокировки процесса/потока по критерию появления в директории
>файлов?


игрался с таким кодом, посмотри может поможет

#define _GNU_SOURCE
#include <fcntl.h>
#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);
        for(;;){
                pause();
                printf("%d\n",event_fd);
        }
        return 0;
}


"Можно ли Линухе блокировать процесс до появления файлов в ди..."
Отправлено Murr , 26-Окт-04 18:05 
/usr/src/linux/Documentation/dnotify.txt