如何将uint32_t掩码保存为指针变量?

How to save the uint32_t mask as a pointer variable?

void inotifyFunc() 包含一个变量作为参数,即 char *path。我还想添加另一个变量,它应该包含 uint32_t mask 的地址,它基本上是 ENOENT,IN_CREATE,IN_DELETE,等等 ,它存在于inotify_add_watch() 但我不知道如何将 uint32_t mask 保存为变量。

我的主要目标是在主函数中调用这个函数,方法是写一个路径,一次命令(IN_CREATE,IN_DELETE,等等)我应该分配给路径.

希望你能理解我的问题。

void inotifyFunc(char *path){
    monitor.fd = inotify_init();
    if(fcntl(monitor.fd, F_SETFL, O_NONBLOCK)){
       perror("inotify not initialized: ");
       exit(0);
    }

    monitor.wd = inotify_add_watch(monitor.fd, path, ENOENT);
    if(monitor.wd < 0){
        perror("Sorry");
        exit(1);
    }
    else{
        printf("Location '%s' is being monitored\n\n", path);
    }
}

如果我做对了

变化:

void inotifyFunc(char *path) {

收件人:

void inotifyFunc(char *path, uint32_t *mask ) {

然后

uint32_t mask = ENOENT;
inotifyFunc("....", &mask); // Address of (pointer to) mask

然后使用

monitor.wd = inotify_add_watch(monitor.fd, path, mask);

编辑

因为我刚刚阅读了手册页 - 请参阅评论

然后

monitor.wd = inotify_add_watch(monitor.fd, path, *mask);

或者

void inotifyFunc(char *path, uint32_t mask ) {

 inotifyFunc("....", mask);