summaryrefslogtreecommitdiffstats
path: root/tools/h5import.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-07-13 15:35:21 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-07-13 15:35:21 (GMT)
commit614ae2dce6086a8966a26074f48644aa3c92f93c (patch)
tree9f7ddbf622c6403dd61ae4bb977dda94e75ac915 /tools/h5import.c
parentb5189f738df7043790a254ed55263b08386dece8 (diff)
downloadhdf5-614ae2dce6086a8966a26074f48644aa3c92f93c.zip
hdf5-614ae2dce6086a8966a26074f48644aa3c92f93c.tar.gz
hdf5-614ae2dce6086a8966a26074f48644aa3c92f93c.tar.bz2
[svn-r485] Changes since 19980710
---------------------- ./Makefile.in ./config/commence.in ./config/conclude.in ./config/depend.in ./src/Makefile.in ./test/Makefile.in Tests are no longer installed for `make install'. Added a new target `make tests' that builds the tests but doesn't run them. ./configure.in ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Added detection of fork() and waitpid(). If present the contants HAVE_FORK and HAVE_WAITPID will be defined in H5config.h. ./test/dtypes.c Minor tweaks for systems that don't have fork() or waitpid(). ./MANIFEST ./tools [NEW] ./tools/Makefile.in [NEW] ./tools/h5debug.c [NEW] ./tools/h5import.c [NEW] ./tools/h5ls.c [NEW] ./tools/h5repart.c [NEW] Added a tools directory and moved tools from the src directory to here.
Diffstat (limited to 'tools/h5import.c')
-rw-r--r--tools/h5import.c119
1 files changed, 119 insertions, 0 deletions
diff --git a/tools/h5import.c b/tools/h5import.c
new file mode 100644
index 0000000..de1af53
--- /dev/null
+++ b/tools/h5import.c
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 1998 NCSA
+ * All rights reserved.
+ *
+ * Programmer: Robb Matzke <matzke@llnl.gov>
+ * Thursday, June 11, 1998
+ *
+ * Purpose: Create an hdf5 file with a 1d dataset of uint8.
+ */
+#include <fcntl.h>
+#include <hdf5.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+
+
+/*-------------------------------------------------------------------------
+ * Function: usage
+ *
+ * Purpose: Print a usage message and exit with non-zero status
+ *
+ * Return: never returns
+ *
+ * Programmer: Robb Matzke
+ * Thursday, June 11, 1998
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static void
+usage (const char *argv0)
+{
+ fprintf (stderr, "Usage: %s -f HDF5-FILE FILES...\n", argv0);
+ exit (1);
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: main
+ *
+ * Purpose:
+ *
+ * Return: Success: 0
+ *
+ * Failure: 1
+ *
+ * Programmer: Robb Matzke
+ * Thursday, June 11, 1998
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+int
+main (int argc, char *argv[])
+{
+ hid_t file, space, dset;
+ const char *output_name, *dset_name;
+ int argno, fd=-1;
+ hsize_t size[1];
+ struct stat sb;
+
+ /* Parse arguments */
+ if (argc<4) usage (argv[0]);
+ if (strcmp (argv[1], "-f")) usage (argv[0]);
+ output_name = argv[2];
+
+ /* create the file */
+ H5E_BEGIN_TRY {
+ if ((file = H5Fcreate (output_name, H5F_ACC_EXCL,
+ H5P_DEFAULT, H5P_DEFAULT))<0 &&
+ (file = H5Fopen (output_name, H5F_ACC_RDWR, H5P_DEFAULT)<0)) {
+ fprintf (stderr, "%s: unable to create or open hdf5 file\n",
+ output_name);
+ exit (1);
+ }
+ } H5E_END_TRY;
+
+ /* process files from command-line */
+ for (argno=3; argno<argc; argno++) {
+
+ /* Open the file */
+ if ((dset_name=strrchr (argv[argno], '/'))) dset_name++;
+ else dset_name = argv[argno];
+ fprintf (stderr, "%s\n", dset_name);
+ if ((fd=open (argv[argno], O_RDONLY))<0) {
+ perror (argv[argno]);
+ goto next;
+ }
+ if (fstat (fd, &sb)<0) {
+ perror (argv[argno]);
+ goto next;
+ }
+
+ /* Data space */
+ size[0] = sb.st_size;
+ if ((space = H5Screate_simple (1, size, size))<0) goto next;
+
+ /* Dataset */
+ if ((dset=H5Dcreate (file, dset_name, H5T_NATIVE_CHAR,
+ space, H5P_DEFAULT))<0) goto next;
+
+
+
+ next:
+ if (fd>=0) close (fd);
+ fd = -1;
+ H5E_BEGIN_TRY {
+ H5Sclose (space);
+ H5Dclose (dset);
+ } H5E_END_TRY;
+ }
+
+ /* Close the file */
+ H5Fclose (file);
+ return 0;
+}