Dalam membuat filesystem FUSE kita membuat beberapa fungsi didalamnya diantaranya mkdir, rmdir, dan sebagainya, sehingga FUSE kita dapat bekerja seperti filesystem sebagaimana mestinya.
berikut tutorial singkat dalam membuat FUSE:
1. Pastikan terdapat berbagai library yang dibutuhkan
contoh:
#include <fuse.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <sys/statfs.h>
2. pastikan untuk folder yang akan di-mount,lokasi/path-nya sudah tepat.
contoh:
static const char *dirpath = "/home/[nama user kalian]/Downloads"
3. buat inti program (int main) dan fungsi fuse_operation berikut
contoh:
static struct fuse_operations xmp_oper = {
.getattr = xmp_getattr,
.readlink = xmp_readlink,
.getdir = xmp_getdir,
};
int main(int argc, char *argv[]) {
fuse_main(argc, argv, &xmp_oper);
return 0;
}
catt: funsgi fuse_operation adalah kumpulan fungsi-fungsi yang dapat dijalankan di FUSE anda
4. buatlah berbagai fungsi sesuai kebutuhan anda. masukkan nama fungsi pada fungsi fuse_operation dan buatlah fungsi dari fungsi itu sendiri.
5. untuk membuat folder, gunakan fungsi xmp_mkdir
tuliskan ".mkdir = xmp_mkdir, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_mkdir(const char *path, mode_t mode) {
int res;
res = mkdir(path, mode);
if(res == -1)
return -errno;
return 0;
}
catt: pastikan path sudah sesuai dengan path file yang dimount
6. untuk menghapus folder, gunakan rmdir
tuliskan ".rmdir = xmp_rmdir, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_rmdir(const char *path, mode_t mode) {
int res;
res = mkdir(path, mode);
if(res == -1)
return -errno;
return 0;
}
catt: pastikan path sudah sesuai dengan path file yang dimount
7. untuk menghapus file, gunakan unlink
tuliskan ".unlink = xmp_unlink, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_unlink(const char *path, mode_t mode) {
int res;
res = unlink(path);
if(res == -1)
return -errno;
return 0;
catt: pastikan path sudah sesuai dengan path file yang dimount
8, untuk mengganti permission, gunakan chmod
tuliskan ".chmod = xmp_chmod, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_chmod(const char *path, mode_t mode) {
int res;
res = chmod(path, mode);
if(res == -1)
return -errno;
return 0;
catt: pastikan path sudah sesuai dengan path file yang dimount
9. dan lain-lain. selengkapnya ada di http://lwn.net/Articles/68106/
10. cara mengcompile:
- gunakan sintaks gcc -Wall [nama file].c `pkg-config fuse --cflags --libs` -o [nama file]
berikut tutorial singkat dalam membuat FUSE:
1. Pastikan terdapat berbagai library yang dibutuhkan
contoh:
#include <fuse.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <sys/statfs.h>
2. pastikan untuk folder yang akan di-mount,lokasi/path-nya sudah tepat.
contoh:
static const char *dirpath = "/home/[nama user kalian]/Downloads"
3. buat inti program (int main) dan fungsi fuse_operation berikut
contoh:
static struct fuse_operations xmp_oper = {
.getattr = xmp_getattr,
.readlink = xmp_readlink,
.getdir = xmp_getdir,
};
int main(int argc, char *argv[]) {
fuse_main(argc, argv, &xmp_oper);
return 0;
}
catt: funsgi fuse_operation adalah kumpulan fungsi-fungsi yang dapat dijalankan di FUSE anda
4. buatlah berbagai fungsi sesuai kebutuhan anda. masukkan nama fungsi pada fungsi fuse_operation dan buatlah fungsi dari fungsi itu sendiri.
5. untuk membuat folder, gunakan fungsi xmp_mkdir
tuliskan ".mkdir = xmp_mkdir, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_mkdir(const char *path, mode_t mode) {
int res;
res = mkdir(path, mode);
if(res == -1)
return -errno;
return 0;
}
catt: pastikan path sudah sesuai dengan path file yang dimount
6. untuk menghapus folder, gunakan rmdir
tuliskan ".rmdir = xmp_rmdir, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_rmdir(const char *path, mode_t mode) {
int res;
res = mkdir(path, mode);
if(res == -1)
return -errno;
return 0;
}
catt: pastikan path sudah sesuai dengan path file yang dimount
7. untuk menghapus file, gunakan unlink
tuliskan ".unlink = xmp_unlink, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_unlink(const char *path, mode_t mode) {
int res;
res = unlink(path);
if(res == -1)
return -errno;
return 0;
catt: pastikan path sudah sesuai dengan path file yang dimount
8, untuk mengganti permission, gunakan chmod
tuliskan ".chmod = xmp_chmod, " pada fuse_operations
lalu buat fungsi sebagai berikut
static int xmp_chmod(const char *path, mode_t mode) {
int res;
res = chmod(path, mode);
if(res == -1)
return -errno;
return 0;
catt: pastikan path sudah sesuai dengan path file yang dimount
9. dan lain-lain. selengkapnya ada di http://lwn.net/Articles/68106/
10. cara mengcompile:
- gunakan sintaks gcc -Wall [nama file].c `pkg-config fuse --cflags --libs` -o [nama file]