⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hdftest.c

📁 在 linux平台上的网页编程的模板
💻 C
字号:
#include "cs_config.h"#include <unistd.h>#include <string.h>#include "util/neo_misc.h"#include "util/neo_hdf.h"#include "util/neo_rand.h"#define DIE_NOT_OK(err) \  if (err != STATUS_OK) { \      nerr_log_error(err); \      exit(-1); \  }int rand_name (char *s, int slen){  char buf[256];  int x, m, l, rl;  m = neo_rand(10);  while (1) {    neo_rand_word(s, slen);    if (!strchr(s, '.')) break;  }  for (x = 1; x < m; x++)  {    l = strlen(s);    neo_rand_word(buf, sizeof(buf));    rl = strlen(buf);    /* fprintf(stderr, "%s\n", buf); */    if (rl && slen - l - rl > 1 && !strchr(buf, '.')) {      snprintf(s + l, slen - l, ".%s", buf);    }  }  return 0;}static int sortByName(const void *a, const void *b) {  HDF **ha = (HDF **)a;  HDF **hb = (HDF **)b;  /* fprintf(stderr, "%s <=> %s\n", hdf_obj_name(*ha), hdf_obj_name(*hb));  */  return strcasecmp(hdf_obj_name(*ha), hdf_obj_name(*hb));}int main(int argc, char *argv[]){  NEOERR *err;  HDF *hdf;  int x;  char name[256];  char value[256];  double tstart = 0;  err = hdf_init(&hdf);  DIE_NOT_OK(err);  err = hdf_set_value (hdf, "Beware", "1");  DIE_NOT_OK(err);  err = hdf_set_value (hdf, "Beware.The", "2");  DIE_NOT_OK(err);  err = hdf_set_valuef (hdf, "Beware.The.%s=%d", "Ides", 3);  DIE_NOT_OK(err);  err = hdf_set_value (hdf, "Beware.Off", "4");  DIE_NOT_OK(err);  err = hdf_set_value (hdf, "Beware.The.Ides.Of", "5");  DIE_NOT_OK(err);  err = hdf_set_value (hdf, "Beware.The.Butter", "6");  DIE_NOT_OK(err);  err = hdf_set_attr (hdf, "Beware.The.Butter", "Lang", "en");  DIE_NOT_OK(err);  err = hdf_set_attr (hdf, "Beware.The.Butter", "Lang", "1");  DIE_NOT_OK(err);  err = hdf_set_attr (hdf, "Beware.The.Butter", "Lang", NULL);  DIE_NOT_OK(err);  err = hdf_read_file (hdf, "test.hdf");  DIE_NOT_OK(err);  hdf_dump(hdf, NULL);  x = hdf_get_int_value (hdf, "Beware.The.Ides", 0);  if (x != 3)  {    ne_warn("hdf_get_int_value returned %d, expected 3", x);    return -1;  }   /* test symlinks */  {    const char *v;    err = hdf_set_value(hdf, "Destination.Foo", "bar");    DIE_NOT_OK(err);    err = hdf_set_symlink(hdf, "Symlink.baz", "Destination.Foo");    DIE_NOT_OK(err);    v = hdf_get_value(hdf, "Symlink.baz", "notfound");    if (strcmp(v, "bar")) {      ne_warn("hdf_get_value through symlink returned %s, expected bar", v);      return -1;    }    err = hdf_set_value(hdf, "Symlink.baz", "newvalue");    DIE_NOT_OK(err);    v = hdf_get_value(hdf, "Symlink.baz", "notfound");    if (strcmp(v, "newvalue")) {      ne_warn("hdf_get_value through symlink returned %s, expected newvalue",              v);      return -1;    }    err = hdf_set_value(hdf, "Symlink.baz.too", "newtoo");    DIE_NOT_OK(err);    v = hdf_get_value(hdf, "Symlink.baz.too", "newtoo");    if (strcmp(v, "newtoo")) {      ne_warn("hdf_get_value through symlink returned %s, expected newtoo",              v);      return -1;    }    v = hdf_get_value(hdf, "Destination.Foo.too", "newtoo");    if (strcmp(v, "newtoo")) {      ne_warn("hdf_get_value through symlink returned %s, expected newtoo",              v);      return -1;    }  }  for (x = 0; x < 10000; x++)  {    rand_name(name, sizeof(name));    neo_rand_word(value, sizeof(value));    /* ne_warn("Setting %s = %s", name, value); */    err = hdf_set_value (hdf, name, value);    DIE_NOT_OK(err);  }  tstart = ne_timef();  hdf_sort_obj(hdf, sortByName);  ne_warn("sort took %5.5fs", ne_timef() - tstart);  hdf_dump(hdf, NULL);  hdf_destroy(&hdf);  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -