Ejemplo n.º 1
0
/* MMDAgent_dlopen: open dynamic library */
void *MMDAgent_dlopen(const char *file)
{
#ifdef _WIN32
   return (void *) LoadLibraryExA(file, NULL, 0);
#else
   char *path;
   void *d;

   if(file == NULL)
      return NULL;

   path = MMDFiles_pathdup(file);
   d = dlopen(path, RTLD_NOW);
   free(path);

   return d;
#endif /* _WIN32 */
}
Ejemplo n.º 2
0
/* MMDAgent_opendir: open directory */
DIRECTORY *MMDAgent_opendir(const char *name)
{
#ifdef _WIN32
    DIRECTORY *dir;

    if(name == NULL)
        return NULL;

    dir = (DIRECTORY *) malloc(sizeof(DIRECTORY));
    dir->data = malloc(sizeof(WIN32_FIND_DATAA));
    char name2[MMDAGENT_MAXBUFLEN];
    if(MMDAgent_strlen(name) <= 0) {
        strcpy(name2, "*");
    } else {
        sprintf(name2, "%s%c*", name, MMDAGENT_DIRSEPARATOR);
    }
    dir->find = FindFirstFileA(name2, (WIN32_FIND_DATAA *) dir->data);
    dir->first = true;
    if(dir->find == INVALID_HANDLE_VALUE) {
        free(dir->data);
        free(dir);
        return NULL;
    }
#else
    DIRECTORY *dir;
    char *path;

    if(name == NULL)
        return NULL;

    dir = (DIRECTORY *) malloc(sizeof(DIRECTORY));

    path = MMDFiles_pathdup(name);
    dir->find = (void *) opendir(path);
    free(path);
    if(dir->find == NULL) {
        free(dir);
        return NULL;
    }
#endif /* _WIN32 */

    return dir;
}
Ejemplo n.º 3
0
/* MMDAgent_dlopen: open dynamic library */
void *MMDAgent_dlopen(const char *file)
{
#ifdef _WIN32
    return (void *) LoadLibraryExA(file, NULL, 0);
#else
    char *path, *error;
    void *d;

    if(file == NULL)
        return NULL;

    path = MMDFiles_pathdup(file);
    d = dlopen(path, RTLD_NOW);
    free(path);
    error = dlerror();
    if (error != NULL)
        printf("Failed to load library: %s with error: %s\n", file, error);

    return d;
#endif /* _WIN32 */
}
Ejemplo n.º 4
0
/* MMDFiles_fopen: get file pointer */
FILE *MMDFiles_fopen(const char *file, const char *mode)
{
#ifdef _WIN32
   if(file == NULL || mode == NULL)
      return NULL;
   else
      return fopen(file, mode);
#else
   char *path;
   FILE *fp;

   if(file == NULL || mode == NULL)
      return NULL;

   path = MMDFiles_pathdup(file);
   fp = fopen(path, mode);
   free(path);

   return fp;
#endif /* _WIN32 */
}
Ejemplo n.º 5
0
/* MMDAgent_pathdup: convert charset from application to system */
char *MMDAgent_pathdup(const char *str)
{
    return MMDFiles_pathdup(str);
}