- 论坛徽章:
- 0
|
#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 inode *inode;
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);
printf("count = %d", atomic_read(&inode->i_count));
printf( "%d ", (unsigned long)(&((struct inode *)0)->i_count));
while (1) {
pause();
printf("Got event on fd=%d\n", event_fd);
}
}
各位帮我看看这个程序,printf的时候出错。
[ 本帖最后由 liangfu 于 2006-10-31 17:17 编辑 ] |
|