diff options
| author | Anand Avati <avati@redhat.com> | 2012-07-12 15:40:43 -0700 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-07-18 12:12:25 -0700 | 
| commit | b324e317311974fbbb9ba13548364213a7a7a41a (patch) | |
| tree | a0e7241d7bf12a4304d7b3819859aa273b614fa8 /api/examples/glfsxmp.c | |
| parent | dbd7aa2d6b4128faa771d616c429b3a315740cec (diff) | |
glfsxmp: libgfapi based example
This is an example application which uses libgfapi. It is
a complete autotools based build system which demonstrates the
required changes in configure.ac, Makefile.am etc to successfuly
detect for and build an application against libgfapi.
There are two approaches to building a libgfapi based application:
1. In the presence of pkg-config in your build system.
This is the recommended approach which is also used in this example.
For this approach to work, you need to build glusterfs by passing
--pkgconfigdir=/usr/lib64/pkgconfig (or the appropriate directory)
in your distro. This already happens if you build RPMs with the
glusterfs.spec provided in glusterfs.git. You will also need to
install glusterfs-api RPM.
2. In the absence of pkg-config in your build system.
Make sure your LDFLAGS includes -L/path/to/lib where libgfapi.so is
installed and -I/path/to/include/glusterfs where the 'api' directory
Change-Id: Ic4eab2df002d7e8d20593a03e643859423048848
BUG: 839950
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.com/3666
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'api/examples/glfsxmp.c')
| -rw-r--r-- | api/examples/glfsxmp.c | 57 | 
1 files changed, 57 insertions, 0 deletions
diff --git a/api/examples/glfsxmp.c b/api/examples/glfsxmp.c new file mode 100644 index 00000000000..1883b54bc92 --- /dev/null +++ b/api/examples/glfsxmp.c @@ -0,0 +1,57 @@ +#include <stdio.h> +#include <errno.h> +#include "api/glfs.h" +#include <string.h> +#include <time.h> + +int +main (int argc, char *argv[]) +{ +	glfs_t    *fs = NULL; +	int        ret = 0; +	glfs_fd_t *fd = NULL; +	struct stat sb = {0, }; +	char       readbuf[32]; +	char       writebuf[32]; + +	char      *volname = "iops"; +	char      *filename = "/filename2"; + +	fs = glfs_new (volname); +	if (!fs) { +		fprintf (stderr, "glfs_new: returned NULL\n"); +		return 1; +	} + +//	ret = glfs_set_volfile (fs, "/tmp/filename.vol"); + +	ret = glfs_set_volfile_server (fs, "socket", "localhost", 24007); + +//	ret = glfs_set_volfile_server (fs, "unix", "/tmp/gluster.sock", 0); + +	ret = glfs_set_logging (fs, "/dev/stderr", 7); + +	ret = glfs_init (fs); + +	fprintf (stderr, "glfs_init: returned %d\n", ret); + + +	ret = glfs_lstat (fs, filename, &sb); +	fprintf (stderr, "%s: (%d) %s\n", filename, ret, strerror (errno)); + +	fd = glfs_creat (fs, filename, O_RDWR, 0644); +	fprintf (stderr, "%s: (%p) %s\n", filename, fd, strerror (errno)); + +	sprintf (writebuf, "hi there\n"); +	ret = glfs_write (fd, writebuf, 32, 0); + +	glfs_lseek (fd, 0, SEEK_SET); + +	ret = glfs_read (fd, readbuf, 32, 0); + +	printf ("read %d, %s", ret, readbuf); + +	glfs_close (fd); + +	return ret; +}  | 
