dbztool.c
上传用户:minyiyu
上传日期:2018-12-24
资源大小:864k
文件大小:1k
源码类别:

Telnet服务器

开发平台:

Unix_Linux

  1. #include <sys/file.h>
  2. #include "his.h"
  3. #define DEBUG 1
  4. #undef DEBUG
  5. static datum content, inputkey, inputvalue;
  6. static char dboutput[1025];
  7. static char dbinput[1025];
  8. static char valueinput[100];
  9. enum {
  10. SUBJECT, FROM, NAME
  11. };
  12. char   *
  13. DBfetch(key)
  14. char   *key;
  15. {
  16. int     i;
  17. char   *tail, *ptr;
  18. if (key == NULL)
  19. return NULL;
  20. sprintf(dbinput, "%.510s", key);
  21. inputkey.dptr = dbinput;
  22. inputkey.dsize = strlen(dbinput);
  23. content.dptr = dboutput;
  24. ptr = (char *) HISfilesfor(&inputkey, &content);
  25. if (ptr == NULL) {
  26. return NULL;
  27. }
  28. return ptr;
  29. }
  30. DBstore(key, paths)
  31. char   *key;
  32. char   *paths;
  33. {
  34. int     i;
  35. char   *tail;
  36. time_t  now;
  37. time(&now);
  38. if (key == NULL)
  39. return -1;
  40. sprintf(dbinput, "%.510s", key);
  41. inputkey.dptr = dbinput;
  42. inputkey.dsize = strlen(dbinput);
  43. if (HISwrite(&inputkey, now, paths) == FALSE) {
  44. return -1;
  45. } else {
  46. return 0;
  47. }
  48. }
  49. int 
  50. storeDB(mid, paths)
  51. char   *mid;
  52. char   *paths;
  53. {
  54. char   *key, *ptr;
  55. int     rel;
  56. ptr = DBfetch(mid);
  57. if (ptr != NULL) {
  58. return 0;
  59. } else {
  60. return DBstore(mid, paths);
  61. }
  62. }
  63. my_mkdir(idir, mode)
  64. char   *idir;
  65. int     mode;
  66. {
  67. char    buffer[LEN];
  68. char   *ptr, *dir = buffer;
  69. struct stat st;
  70. strncpy(dir, idir, LEN - 1);
  71. for (; dir != NULL && *dir;) {
  72. ptr = (char *) strchr(dir, '/');
  73. if (ptr != NULL) {
  74. *ptr = '';
  75. }
  76. if (stat(dir, &st) != 0) {
  77. if (mkdir(dir, mode) != 0)
  78. return -1;
  79. }
  80. chdir(dir);
  81. if (ptr != NULL)
  82. dir = ptr + 1;
  83. else
  84. dir = ptr;
  85. }
  86. return 0;
  87. }