util.c 783 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#include "util.h"
#include <dirent.h>
#include <stdlib.h>
#include <string.h>

int dirOK(const char *path) {
  DIR *dir = opendir(path);
  if (dir != NULL) {
    closedir(dir);
    return 1;
  } else {
    return 0;
  }
}

int splitString(const char *str, char *separator, char (*arr)[TOKEN_LEN], int n_arr) {
  if (n_arr <= 0) {
    return -1;
  }

  char *tmp = (char *)malloc(strlen(str) + 1);
  strcpy(tmp, str);
  char *context;
  int   n = 0;

  char *token = strtok_r(tmp, separator, &context);
  if (!token) {
    goto ret;
  }
  strncpy(arr[n], token, TOKEN_LEN);
  n++;

  while (1) {
    token = strtok_r(NULL, separator, &context);
    if (!token || n >= n_arr) {
      goto ret;
    }
    strncpy(arr[n], token, TOKEN_LEN);
    n++;
  }

ret:
  free(tmp);
  return n;
}