私はFUSEドライバを実装しようとしています。 私がやったことは、あなた自身の関数でオーバーライドした基本操作を取って、cout << operation << path << endl;
を追加したので、どの操作が呼び出されるのか分かります。ここに私のopen
機能は次のとおりです。ヒューズC++ドライバ - read()の実装
int Router::open(const char *path, struct fuse_file_info *fi) {
std::cout << "open " << path << std::endl;
return 0;
}
これは0
を返しますので、開いているすべての時間を成功する必要があります。これは、バッファにh\0
の上にコピーする必要があり
int Router::read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi) {
std::cout << "read " << path << "Size: " << size << "Offset: " << offset << std::endl;
buf[0] = 'h';
buf[1] = '\0';
return 2;
}
: はその後、ここで私のread
機能です。 しかし私がするとき:cat myfile
それは私のopen()
機能を実行し、それは私のread()
機能を実行しますが、catの出力は何もありません。それはh
を出力するはずですが、そうではありません。私は間違って何をしていますか?問題がある可能性がどのような
また、私はOSXの下で、まったく同じコードだけopen
機能を実行することを見つけませんが、決してread()
?