如何将数据写入文件时生成信号?

问题描述:

当C程序执行时会产生错误或执行成功。如果它产生错误,我将错误重定向到文件error.log。我想在error.log发生写操作时立即生成一个Signal(通知),这个信号应该调用另一个程序,比如Parser.c,它将读取error.log复制到缓冲区并清除日志的内容文件。如何将数据写入文件时生成信号?

是否有可能文件生成一个信号来调用另一个程序,如果是的话我们如何才能以编程方式实现它?

+6

阅读有关'inotify',将侦听器设置为文件系统更改的信息。 –

+0

谢谢你的支持Eli Lser。如果有任何疑问,我会尽快回复您 – deepak

我相信答案在不同系统上会有所不同。我建议你在完成文件写入后,从第一个程序启动另一个程序(在Linux上分叉一个新进程)。

+0

谢谢所有会员的支持我可以使用Inotify – deepak

一种方法是使用异步I/O机制(aio_ *),它们将发送AIO控制块中指定的信号(查看手册页以获取更多详细信息,它非常完整)。基本上你会设置一个AIO控制块来读取,并发出一个aio_read()。收到信号后,您将处理数据。对于Linux来说,aio(7)是一个非常有用的手册页。