将 inotify 与 MinGW 一起使用

Posted

技术标签:

【中文标题】将 inotify 与 MinGW 一起使用【英文标题】:Use inotify with MinGW 【发布时间】:2016-03-21 08:09:18 【问题描述】:

是否可以使用 inotify 在 Windows 上使用 mingw 进行编译? 因为我会监控更改 Linux 服务器上的文件,但程序将在 Windows7 机器上编译和运行。我想我必须使用 inotify 而不是 Win32 API FindFirstChangeNotification。 是否可以从Windows 机器监控Linux 目录?

我编译时的错误:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\simon\Desktop>g++ main.c -o main.exe
main.c:5:25: fatal error: sys/inotify.h: No such file or directory
      #include <sys/inotify.h>
                     ^
compilation terminated.

【问题讨论】:

【参考方案1】:

不,inotify 是 Linux 内核提供的功能,所以要使用它,程序必须在 Linux 上运行。在 Windows 上运行的程序必须使用 Windows API。

如果您的应用程序在 Windows 上运行并且可以访问 Linux 服务器上的文件,它仍然使用 Windows API 来执行此操作,并且 Linux 文件系统是通过某些网络文件系统(最可能是 SMB 或 NFS)公开的,它完成了转换 API 的工作并通过网络发送字节。

总而言之,如果您想监控远程系统上的更改,首先确保您的网络文件系统支持更改通知,然后使用“本地”API - 在您的情况下,Windows 的。

【讨论】:

好的,谢谢你的回答,有必要我转向FindFirstChangeNotification@el.pescado

以上是关于将 inotify 与 MinGW 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

将 gcc/g++ 仪器功能与 MinGW 一起使用?

可以将 QtConcurrent 与 Ruby (mingw-32) 一起使用吗?

将 Cilk Plus 与 MinGW-w64 (gcc 4.9.2) 一起使用?

将 Qt 与自定义 MinGW 一起使用

Inotify 动态索引新文件夹

在 go-inotify 中查看递归目录