diff options
Diffstat (limited to 'example-23/hello.c')
-rw-r--r-- | example-23/hello.c | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/example-23/hello.c b/example-23/hello.c deleted file mode 100644 index b71bcd645..000000000 --- a/example-23/hello.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - FUSE: Filesystem in Userspace - Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu> - - This program can be distributed under the terms of the GNU GPL. - See the file COPYING. -*/ - -#include <fuse.h> -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <fcntl.h> - -static const char *hello_str = "Hello World!\n"; -static const char *hello_path = "/hello"; - -static int hello_getattr(const char *path, struct stat *stbuf) -{ - int res = 0; - - memset(stbuf, 0, sizeof(struct stat)); - if(strcmp(path, "/") == 0) { - stbuf->st_mode = S_IFDIR | 0755; - stbuf->st_nlink = 2; - } - else if(strcmp(path, hello_path) == 0) { - stbuf->st_mode = S_IFREG | 0444; - stbuf->st_nlink = 1; - stbuf->st_size = strlen(hello_str); - } - else - res = -ENOENT; - - return res; -} - -static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler, - off_t offset, struct fuse_file_info *fi) -{ - (void) offset; - (void) fi; - - if(strcmp(path, "/") != 0) - return -ENOENT; - - filler(buf, ".", NULL, 0); - filler(buf, "..", NULL, 0); - filler(buf, hello_path + 1, NULL, 0); - - return 0; -} - -static int hello_open(const char *path, struct fuse_file_info *fi) -{ - if(strcmp(path, hello_path) != 0) - return -ENOENT; - - if((fi->flags & 3) != O_RDONLY) - return -EACCES; - - return 0; -} - -static int hello_read(const char *path, char *buf, size_t size, off_t offset, - struct fuse_file_info *fi) -{ - size_t len; - (void) fi; - if(strcmp(path, hello_path) != 0) - return -ENOENT; - - len = strlen(hello_str); - if (offset < len) { - if (offset + size > len) - size = len - offset; - memcpy(buf, hello_str + offset, size); - } else - size = 0; - - return size; -} - -static struct fuse_operations hello_oper = { - .getattr = hello_getattr, - .readdir = hello_readdir, - .open = hello_open, - .read = hello_read, -}; - -int main(int argc, char *argv[]) -{ - return fuse_main(argc, argv, &hello_oper); -} |