4
#include <glusterfs/api/glfs.h>
5
#include <glusterfs/api/glfs-handles.h>
7
#define VALIDATE_AND_GOTO_LABEL_ON_ERROR(func, ret, label) \
10
fprintf(stderr, "%s : returned error %d (%s)\n", func, ret, \
17
main(int argc, char *argv[])
20
int flags = O_RDWR | O_SYNC;
22
glfs_fd_t *fd1 = NULL;
23
glfs_fd_t *fd2 = NULL;
26
char *hostname = NULL;
27
const char *filename = "file_tmp";
29
"An opinion should be the result of thought, "
30
"not a substitute for it.";
33
fprintf(stderr, "Invalid argument\n");
41
fs = glfs_new(volname);
43
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_new", ret, out);
45
ret = glfs_set_volfile_server(fs, "tcp", hostname, 24007);
46
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_set_volfile_server", ret, out);
48
ret = glfs_set_logging(fs, logfile, 7);
49
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_set_logging", ret, out);
52
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_init", ret, out);
54
fd1 = glfs_creat(fs, filename, flags, 0644);
57
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_creat", ret, out);
60
ret = glfs_write(fd1, buff, strlen(buff), flags);
61
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_write", ret, out);
66
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_dup", ret, out);
69
ret = glfs_lseek(fd2, 0, SEEK_SET);
70
VALIDATE_AND_GOTO_LABEL_ON_ERROR("glfs_lseek", ret, out);
80
fprintf(stderr, "glfs_fini(fs) returned %d\n", ret);