从C程序观看Linux Syslog上的新条目

| 我想编写一个监视syslog并在PPP身份验证失败时执行操作的程序。 我认为\“ tail -f / var / log / syslog \”可能会有所帮助,但是我不确定如何使用它……可能使用管道? 我发现了一些用bash编写的类似内容,但是我不确定如何在C中实现它。 这是bash方法: 首先使用mkfifo创建一个命名管道:
$ mkfifo -p /home/mezgani/syslog.pipe
使syslog.conf指向此文件:
*.info |/home/mezgani/syslog.pipe
重新启动系统日志:
$ sudo pkill -HUP syslogd
创建读取管道的处理脚本
$ cat > foo
#!/bin/bash
cat /home/mezgani/syslog.pipe | while read input
do
    # some stuff
    echo ${input}
    # ….
done
    
已邀请:
终于我找到了解决方案! 解决方案是使用命名管道! 首先,我需要创建一个命名管道: mkfifo /管道 然后,我将日志信息输入管道: 尾-f / var / log / syslog> / pipe 然后,我使用OPEN从C程序读取管道
int pipefd;
pipefd = open(\"/tmp/myFIFO\", O_WRONLY);
    
尝试使用inotify函数。使用它可以监视文件或目录是否已更改。     

要回复问题请先登录注册