#include "fakefuse.h" int spray1_pipes[2]; int fuse_read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi) { if(strcmp(path + 1, spray1_path) == 0) { char signal; read(spray1_pipes[0], &signal, 1); } else if (strcmp(path + 1, spray2_path) == 0) { sleep(100000); } return size; } int fuse_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 + 1, spray1_path) == 0 || strcmp(path + 1, spray2_path) == 0 ) { stbuf->st_mode = S_IFREG | 0444; stbuf->st_nlink = 1; stbuf->st_size = 0x1000; } else { res = -ENOENT; } return res; } int fuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) { if (strcmp(path, "/") != 0) return -ENOENT; filler(buf, ".", NULL, 0); filler(buf, "..", NULL, 0); filler(buf, spray1_path, NULL, 0); filler(buf, spray2_path, NULL, 0); return 0; }