ERROR : ‘fuse_operations_compat2’ has no non-static data member named ‘readdir’












1














I am trying to build a simple filesystem using fuse 2.9.7 to store an avifile in it. But i am having trouble in finding the solution for these error.



‘fuse_operations_compat2’ has no non-static data member named ‘readdir’


I have this main.cpp



#include<iostream>
#include<fuse.h>

#include "include/AVIContainer.h"
#include "include/Fuse.h"

using namespace std;

int main(int argc, char* argv)
{
AVIContainer *avi = new AVIContainer(320, 240, 30, 90);
avi->WriteToFile("test.avi");


struct fuse_operations oper = {
.getattr = getattr_callback,
.readdir = readdir_callback,
.open = open_callback,
.read = read_callback,
};

return fuse_main(argc, argv , &oper);

}


and these are the header file(.cpp)



#define FUSE_USE_VERSION 30

#include<fuse.h>
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>

#include "Fuse.h"


char filename[30] = "/avifile";
char filename2[30] = "avifile";


int getattr_callback(const char *path, struct stat *st)
{

st->st_uid = getuid();
st->st_gid = getgid();
st->st_atime = time(NULL);
st->st_mtime = time(NULL);

if(strcmp(path, "/") == 0)
{
st->st_mode = S_IFDIR | 0755;
st->st_nlink = 2;
}

if(strcmp(path,filename) == 0)
{
st->st_mode = S_IFREG | 0644;
st->st_nlink = 1;
st->st_size = datasize;
}

return 0;
}


int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi)
{

filler(buffer, ".", NULL, 0);
filler(buffer, "..", NULL, 0);

if(strcmp(path, "/") == 0)
{
filler(buffer, filename2, NULL, 0);
}

return 0;
}

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi)
{

unsigned int SizetoRead = size;

if( (offset + size) > datasize)
{
SizetoRead = datasize - offset;
}

memcpy(buffer, databuffer + offset, SizetoRead);

return SizetoRead;
}

int open_callback(const char *path, fuse_file_info *fi)
{

return 0;
}


and this is .h file



#ifndef FUSE
#define FUSE


#include <fuse.h>

uint8_t* get_data();

unsigned int get_size();

int getattr_callback(const char *path, struct stat *st);

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi);

int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi);

int open_callback(const char *path, fuse_file_info *fi);

#endif


I think the problem is with version of fuse , though not sure.
please help, thanks in advance



Edit:










share|improve this question
























  • Even in the fuse.h file of source code of fuse 2.9.7 , function readdir is defined , so it means it is not even version issue , but still it is giving error. Please help
    – Rio
    Nov 20 '18 at 6:03










  • It might be caused due to the first #include <fuse.h> in main.cpp being before the #define FUSE_USE_VERSION 30. Try commenting it out.
    – Oren Kishon
    Nov 20 '18 at 10:49










  • Thanks for replying , yes that might be the reason , I have removed it and now few new errors have appeared with fuse ,. It says error :: missing initializer for fuse_operations_compat2::mkdir '
    – Rio
    Nov 20 '18 at 16:37












  • libfuse.github.io/doxygen/structfuse__operations.html, the above was just an example , same error messages for all the function defined in the a above link , more example .error ::missing initializer for fuse_opertion_campat2::flush
    – Rio
    Nov 20 '18 at 16:39












  • Perhaps try not using a "designated initializer", struct s = { .a = x, .b = y }, but rather just every member func in a line: struct s; s.a = x; s.b = y; ...
    – Oren Kishon
    Nov 21 '18 at 7:42
















1














I am trying to build a simple filesystem using fuse 2.9.7 to store an avifile in it. But i am having trouble in finding the solution for these error.



‘fuse_operations_compat2’ has no non-static data member named ‘readdir’


I have this main.cpp



#include<iostream>
#include<fuse.h>

#include "include/AVIContainer.h"
#include "include/Fuse.h"

using namespace std;

int main(int argc, char* argv)
{
AVIContainer *avi = new AVIContainer(320, 240, 30, 90);
avi->WriteToFile("test.avi");


struct fuse_operations oper = {
.getattr = getattr_callback,
.readdir = readdir_callback,
.open = open_callback,
.read = read_callback,
};

return fuse_main(argc, argv , &oper);

}


and these are the header file(.cpp)



#define FUSE_USE_VERSION 30

#include<fuse.h>
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>

#include "Fuse.h"


char filename[30] = "/avifile";
char filename2[30] = "avifile";


int getattr_callback(const char *path, struct stat *st)
{

st->st_uid = getuid();
st->st_gid = getgid();
st->st_atime = time(NULL);
st->st_mtime = time(NULL);

if(strcmp(path, "/") == 0)
{
st->st_mode = S_IFDIR | 0755;
st->st_nlink = 2;
}

if(strcmp(path,filename) == 0)
{
st->st_mode = S_IFREG | 0644;
st->st_nlink = 1;
st->st_size = datasize;
}

return 0;
}


int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi)
{

filler(buffer, ".", NULL, 0);
filler(buffer, "..", NULL, 0);

if(strcmp(path, "/") == 0)
{
filler(buffer, filename2, NULL, 0);
}

return 0;
}

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi)
{

unsigned int SizetoRead = size;

if( (offset + size) > datasize)
{
SizetoRead = datasize - offset;
}

memcpy(buffer, databuffer + offset, SizetoRead);

return SizetoRead;
}

int open_callback(const char *path, fuse_file_info *fi)
{

return 0;
}


and this is .h file



#ifndef FUSE
#define FUSE


#include <fuse.h>

uint8_t* get_data();

unsigned int get_size();

int getattr_callback(const char *path, struct stat *st);

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi);

int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi);

int open_callback(const char *path, fuse_file_info *fi);

#endif


I think the problem is with version of fuse , though not sure.
please help, thanks in advance



Edit:










share|improve this question
























  • Even in the fuse.h file of source code of fuse 2.9.7 , function readdir is defined , so it means it is not even version issue , but still it is giving error. Please help
    – Rio
    Nov 20 '18 at 6:03










  • It might be caused due to the first #include <fuse.h> in main.cpp being before the #define FUSE_USE_VERSION 30. Try commenting it out.
    – Oren Kishon
    Nov 20 '18 at 10:49










  • Thanks for replying , yes that might be the reason , I have removed it and now few new errors have appeared with fuse ,. It says error :: missing initializer for fuse_operations_compat2::mkdir '
    – Rio
    Nov 20 '18 at 16:37












  • libfuse.github.io/doxygen/structfuse__operations.html, the above was just an example , same error messages for all the function defined in the a above link , more example .error ::missing initializer for fuse_opertion_campat2::flush
    – Rio
    Nov 20 '18 at 16:39












  • Perhaps try not using a "designated initializer", struct s = { .a = x, .b = y }, but rather just every member func in a line: struct s; s.a = x; s.b = y; ...
    – Oren Kishon
    Nov 21 '18 at 7:42














1












1








1







I am trying to build a simple filesystem using fuse 2.9.7 to store an avifile in it. But i am having trouble in finding the solution for these error.



‘fuse_operations_compat2’ has no non-static data member named ‘readdir’


I have this main.cpp



#include<iostream>
#include<fuse.h>

#include "include/AVIContainer.h"
#include "include/Fuse.h"

using namespace std;

int main(int argc, char* argv)
{
AVIContainer *avi = new AVIContainer(320, 240, 30, 90);
avi->WriteToFile("test.avi");


struct fuse_operations oper = {
.getattr = getattr_callback,
.readdir = readdir_callback,
.open = open_callback,
.read = read_callback,
};

return fuse_main(argc, argv , &oper);

}


and these are the header file(.cpp)



#define FUSE_USE_VERSION 30

#include<fuse.h>
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>

#include "Fuse.h"


char filename[30] = "/avifile";
char filename2[30] = "avifile";


int getattr_callback(const char *path, struct stat *st)
{

st->st_uid = getuid();
st->st_gid = getgid();
st->st_atime = time(NULL);
st->st_mtime = time(NULL);

if(strcmp(path, "/") == 0)
{
st->st_mode = S_IFDIR | 0755;
st->st_nlink = 2;
}

if(strcmp(path,filename) == 0)
{
st->st_mode = S_IFREG | 0644;
st->st_nlink = 1;
st->st_size = datasize;
}

return 0;
}


int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi)
{

filler(buffer, ".", NULL, 0);
filler(buffer, "..", NULL, 0);

if(strcmp(path, "/") == 0)
{
filler(buffer, filename2, NULL, 0);
}

return 0;
}

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi)
{

unsigned int SizetoRead = size;

if( (offset + size) > datasize)
{
SizetoRead = datasize - offset;
}

memcpy(buffer, databuffer + offset, SizetoRead);

return SizetoRead;
}

int open_callback(const char *path, fuse_file_info *fi)
{

return 0;
}


and this is .h file



#ifndef FUSE
#define FUSE


#include <fuse.h>

uint8_t* get_data();

unsigned int get_size();

int getattr_callback(const char *path, struct stat *st);

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi);

int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi);

int open_callback(const char *path, fuse_file_info *fi);

#endif


I think the problem is with version of fuse , though not sure.
please help, thanks in advance



Edit:










share|improve this question















I am trying to build a simple filesystem using fuse 2.9.7 to store an avifile in it. But i am having trouble in finding the solution for these error.



‘fuse_operations_compat2’ has no non-static data member named ‘readdir’


I have this main.cpp



#include<iostream>
#include<fuse.h>

#include "include/AVIContainer.h"
#include "include/Fuse.h"

using namespace std;

int main(int argc, char* argv)
{
AVIContainer *avi = new AVIContainer(320, 240, 30, 90);
avi->WriteToFile("test.avi");


struct fuse_operations oper = {
.getattr = getattr_callback,
.readdir = readdir_callback,
.open = open_callback,
.read = read_callback,
};

return fuse_main(argc, argv , &oper);

}


and these are the header file(.cpp)



#define FUSE_USE_VERSION 30

#include<fuse.h>
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>

#include "Fuse.h"


char filename[30] = "/avifile";
char filename2[30] = "avifile";


int getattr_callback(const char *path, struct stat *st)
{

st->st_uid = getuid();
st->st_gid = getgid();
st->st_atime = time(NULL);
st->st_mtime = time(NULL);

if(strcmp(path, "/") == 0)
{
st->st_mode = S_IFDIR | 0755;
st->st_nlink = 2;
}

if(strcmp(path,filename) == 0)
{
st->st_mode = S_IFREG | 0644;
st->st_nlink = 1;
st->st_size = datasize;
}

return 0;
}


int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi)
{

filler(buffer, ".", NULL, 0);
filler(buffer, "..", NULL, 0);

if(strcmp(path, "/") == 0)
{
filler(buffer, filename2, NULL, 0);
}

return 0;
}

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi)
{

unsigned int SizetoRead = size;

if( (offset + size) > datasize)
{
SizetoRead = datasize - offset;
}

memcpy(buffer, databuffer + offset, SizetoRead);

return SizetoRead;
}

int open_callback(const char *path, fuse_file_info *fi)
{

return 0;
}


and this is .h file



#ifndef FUSE
#define FUSE


#include <fuse.h>

uint8_t* get_data();

unsigned int get_size();

int getattr_callback(const char *path, struct stat *st);

int read_callback(const char *path, char *buffer, size_t size, off_t offset, struct fuse_file_info *fi);

int readdir_callback(const char *path, void *buffer, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi);

int open_callback(const char *path, fuse_file_info *fi);

#endif


I think the problem is with version of fuse , though not sure.
please help, thanks in advance



Edit:







c++ fuse






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 20 '18 at 16:51







Rio

















asked Nov 19 '18 at 17:49









RioRio

43




43












  • Even in the fuse.h file of source code of fuse 2.9.7 , function readdir is defined , so it means it is not even version issue , but still it is giving error. Please help
    – Rio
    Nov 20 '18 at 6:03










  • It might be caused due to the first #include <fuse.h> in main.cpp being before the #define FUSE_USE_VERSION 30. Try commenting it out.
    – Oren Kishon
    Nov 20 '18 at 10:49










  • Thanks for replying , yes that might be the reason , I have removed it and now few new errors have appeared with fuse ,. It says error :: missing initializer for fuse_operations_compat2::mkdir '
    – Rio
    Nov 20 '18 at 16:37












  • libfuse.github.io/doxygen/structfuse__operations.html, the above was just an example , same error messages for all the function defined in the a above link , more example .error ::missing initializer for fuse_opertion_campat2::flush
    – Rio
    Nov 20 '18 at 16:39












  • Perhaps try not using a "designated initializer", struct s = { .a = x, .b = y }, but rather just every member func in a line: struct s; s.a = x; s.b = y; ...
    – Oren Kishon
    Nov 21 '18 at 7:42


















  • Even in the fuse.h file of source code of fuse 2.9.7 , function readdir is defined , so it means it is not even version issue , but still it is giving error. Please help
    – Rio
    Nov 20 '18 at 6:03










  • It might be caused due to the first #include <fuse.h> in main.cpp being before the #define FUSE_USE_VERSION 30. Try commenting it out.
    – Oren Kishon
    Nov 20 '18 at 10:49










  • Thanks for replying , yes that might be the reason , I have removed it and now few new errors have appeared with fuse ,. It says error :: missing initializer for fuse_operations_compat2::mkdir '
    – Rio
    Nov 20 '18 at 16:37












  • libfuse.github.io/doxygen/structfuse__operations.html, the above was just an example , same error messages for all the function defined in the a above link , more example .error ::missing initializer for fuse_opertion_campat2::flush
    – Rio
    Nov 20 '18 at 16:39












  • Perhaps try not using a "designated initializer", struct s = { .a = x, .b = y }, but rather just every member func in a line: struct s; s.a = x; s.b = y; ...
    – Oren Kishon
    Nov 21 '18 at 7:42
















Even in the fuse.h file of source code of fuse 2.9.7 , function readdir is defined , so it means it is not even version issue , but still it is giving error. Please help
– Rio
Nov 20 '18 at 6:03




Even in the fuse.h file of source code of fuse 2.9.7 , function readdir is defined , so it means it is not even version issue , but still it is giving error. Please help
– Rio
Nov 20 '18 at 6:03












It might be caused due to the first #include <fuse.h> in main.cpp being before the #define FUSE_USE_VERSION 30. Try commenting it out.
– Oren Kishon
Nov 20 '18 at 10:49




It might be caused due to the first #include <fuse.h> in main.cpp being before the #define FUSE_USE_VERSION 30. Try commenting it out.
– Oren Kishon
Nov 20 '18 at 10:49












Thanks for replying , yes that might be the reason , I have removed it and now few new errors have appeared with fuse ,. It says error :: missing initializer for fuse_operations_compat2::mkdir '
– Rio
Nov 20 '18 at 16:37






Thanks for replying , yes that might be the reason , I have removed it and now few new errors have appeared with fuse ,. It says error :: missing initializer for fuse_operations_compat2::mkdir '
– Rio
Nov 20 '18 at 16:37














libfuse.github.io/doxygen/structfuse__operations.html, the above was just an example , same error messages for all the function defined in the a above link , more example .error ::missing initializer for fuse_opertion_campat2::flush
– Rio
Nov 20 '18 at 16:39






libfuse.github.io/doxygen/structfuse__operations.html, the above was just an example , same error messages for all the function defined in the a above link , more example .error ::missing initializer for fuse_opertion_campat2::flush
– Rio
Nov 20 '18 at 16:39














Perhaps try not using a "designated initializer", struct s = { .a = x, .b = y }, but rather just every member func in a line: struct s; s.a = x; s.b = y; ...
– Oren Kishon
Nov 21 '18 at 7:42




Perhaps try not using a "designated initializer", struct s = { .a = x, .b = y }, but rather just every member func in a line: struct s; s.a = x; s.b = y; ...
– Oren Kishon
Nov 21 '18 at 7:42












1 Answer
1






active

oldest

votes


















0














You are using the high level fuse ops (vs the low level ones).
here is what you can do with it (fuse_compat.h)



struct fuse_operations_compat2 {
int (*getattr) (const char *, struct stat *);
int (*readlink) (const char *, char *, size_t);
int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t_compat);
int (*mknod) (const char *, mode_t, dev_t);
int (*mkdir) (const char *, mode_t);
int (*unlink) (const char *);
int (*rmdir) (const char *);
int (*symlink) (const char *, const char *);
int (*rename) (const char *, const char *);
int (*link) (const char *, const char *);
int (*chmod) (const char *, mode_t);
int (*chown) (const char *, uid_t, gid_t);
int (*truncate) (const char *, off_t);
int (*utime) (const char *, struct utimbuf *);
int (*open) (const char *, int);
int (*read) (const char *, char *, size_t, off_t);
int (*write) (const char *, const char *, size_t, off_t);
int (*statfs) (const char *, struct statfs *);
int (*flush) (const char *);
int (*release) (const char *, int);
int (*fsync) (const char *, int);
int (*setxattr) (const char *, const char *, const char *, size_t, int);
int (*getxattr) (const char *, const char *, char *, size_t);
int (*listxattr) (const char *, char *, size_t);
int (*removexattr) (const char *, const char *);


};



try having the version as 32






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53380127%2ferror-fuse-operations-compat2-has-no-non-static-data-member-named-readdir%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You are using the high level fuse ops (vs the low level ones).
    here is what you can do with it (fuse_compat.h)



    struct fuse_operations_compat2 {
    int (*getattr) (const char *, struct stat *);
    int (*readlink) (const char *, char *, size_t);
    int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t_compat);
    int (*mknod) (const char *, mode_t, dev_t);
    int (*mkdir) (const char *, mode_t);
    int (*unlink) (const char *);
    int (*rmdir) (const char *);
    int (*symlink) (const char *, const char *);
    int (*rename) (const char *, const char *);
    int (*link) (const char *, const char *);
    int (*chmod) (const char *, mode_t);
    int (*chown) (const char *, uid_t, gid_t);
    int (*truncate) (const char *, off_t);
    int (*utime) (const char *, struct utimbuf *);
    int (*open) (const char *, int);
    int (*read) (const char *, char *, size_t, off_t);
    int (*write) (const char *, const char *, size_t, off_t);
    int (*statfs) (const char *, struct statfs *);
    int (*flush) (const char *);
    int (*release) (const char *, int);
    int (*fsync) (const char *, int);
    int (*setxattr) (const char *, const char *, const char *, size_t, int);
    int (*getxattr) (const char *, const char *, char *, size_t);
    int (*listxattr) (const char *, char *, size_t);
    int (*removexattr) (const char *, const char *);


    };



    try having the version as 32






    share|improve this answer




























      0














      You are using the high level fuse ops (vs the low level ones).
      here is what you can do with it (fuse_compat.h)



      struct fuse_operations_compat2 {
      int (*getattr) (const char *, struct stat *);
      int (*readlink) (const char *, char *, size_t);
      int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t_compat);
      int (*mknod) (const char *, mode_t, dev_t);
      int (*mkdir) (const char *, mode_t);
      int (*unlink) (const char *);
      int (*rmdir) (const char *);
      int (*symlink) (const char *, const char *);
      int (*rename) (const char *, const char *);
      int (*link) (const char *, const char *);
      int (*chmod) (const char *, mode_t);
      int (*chown) (const char *, uid_t, gid_t);
      int (*truncate) (const char *, off_t);
      int (*utime) (const char *, struct utimbuf *);
      int (*open) (const char *, int);
      int (*read) (const char *, char *, size_t, off_t);
      int (*write) (const char *, const char *, size_t, off_t);
      int (*statfs) (const char *, struct statfs *);
      int (*flush) (const char *);
      int (*release) (const char *, int);
      int (*fsync) (const char *, int);
      int (*setxattr) (const char *, const char *, const char *, size_t, int);
      int (*getxattr) (const char *, const char *, char *, size_t);
      int (*listxattr) (const char *, char *, size_t);
      int (*removexattr) (const char *, const char *);


      };



      try having the version as 32






      share|improve this answer


























        0












        0








        0






        You are using the high level fuse ops (vs the low level ones).
        here is what you can do with it (fuse_compat.h)



        struct fuse_operations_compat2 {
        int (*getattr) (const char *, struct stat *);
        int (*readlink) (const char *, char *, size_t);
        int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t_compat);
        int (*mknod) (const char *, mode_t, dev_t);
        int (*mkdir) (const char *, mode_t);
        int (*unlink) (const char *);
        int (*rmdir) (const char *);
        int (*symlink) (const char *, const char *);
        int (*rename) (const char *, const char *);
        int (*link) (const char *, const char *);
        int (*chmod) (const char *, mode_t);
        int (*chown) (const char *, uid_t, gid_t);
        int (*truncate) (const char *, off_t);
        int (*utime) (const char *, struct utimbuf *);
        int (*open) (const char *, int);
        int (*read) (const char *, char *, size_t, off_t);
        int (*write) (const char *, const char *, size_t, off_t);
        int (*statfs) (const char *, struct statfs *);
        int (*flush) (const char *);
        int (*release) (const char *, int);
        int (*fsync) (const char *, int);
        int (*setxattr) (const char *, const char *, const char *, size_t, int);
        int (*getxattr) (const char *, const char *, char *, size_t);
        int (*listxattr) (const char *, char *, size_t);
        int (*removexattr) (const char *, const char *);


        };



        try having the version as 32






        share|improve this answer














        You are using the high level fuse ops (vs the low level ones).
        here is what you can do with it (fuse_compat.h)



        struct fuse_operations_compat2 {
        int (*getattr) (const char *, struct stat *);
        int (*readlink) (const char *, char *, size_t);
        int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t_compat);
        int (*mknod) (const char *, mode_t, dev_t);
        int (*mkdir) (const char *, mode_t);
        int (*unlink) (const char *);
        int (*rmdir) (const char *);
        int (*symlink) (const char *, const char *);
        int (*rename) (const char *, const char *);
        int (*link) (const char *, const char *);
        int (*chmod) (const char *, mode_t);
        int (*chown) (const char *, uid_t, gid_t);
        int (*truncate) (const char *, off_t);
        int (*utime) (const char *, struct utimbuf *);
        int (*open) (const char *, int);
        int (*read) (const char *, char *, size_t, off_t);
        int (*write) (const char *, const char *, size_t, off_t);
        int (*statfs) (const char *, struct statfs *);
        int (*flush) (const char *);
        int (*release) (const char *, int);
        int (*fsync) (const char *, int);
        int (*setxattr) (const char *, const char *, const char *, size_t, int);
        int (*getxattr) (const char *, const char *, char *, size_t);
        int (*listxattr) (const char *, char *, size_t);
        int (*removexattr) (const char *, const char *);


        };



        try having the version as 32







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 1 hour ago

























        answered 2 hours ago









        KobiKobi

        1781110




        1781110






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53380127%2ferror-fuse-operations-compat2-has-no-non-static-data-member-named-readdir%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

            ts Property 'filter' does not exist on type '{}'

            mat-slide-toggle shouldn't change it's state when I click cancel in confirmation window