2013-11-11 2 views

ответ

1

Функция, которую вы хотите, - apr_dir_open. Я нашел заголовочные файлы, чтобы быть лучшей документацией для АПР

http://apr.apache.org/docs/apr/1.4/group_apr_dir.html

Вот пример для чтения «» и сообщения об ошибках, если они были обнаружены

#include <stdio.h> 
#include <stdlib.h> 
#include <stdint.h> 
#include <inttypes.h> 
#include <apr.h> 
#include <apr_errno.h> 
#include <apr_pools.h> 
#include <apr_file_info.h> 

static void apr_fatal(apr_status_t rv); 

int main(void) 
{ 
    apr_pool_t *pool; 
    apr_status_t rv; 

    // Initialize APR and pool 
    apr_initialize(); 
    if ((rv = apr_pool_create(&pool, NULL)) != APR_SUCCESS) { 
     apr_fatal(rv); 
    } 

    // Open the directory 
    apr_dir_t *dir; 
    if ((rv = apr_dir_open(&dir, ".", pool)) != APR_SUCCESS) { 
     apr_fatal(rv); 
    } 

    // Read the directory 
    apr_finfo_t finfo; 
    apr_int32_t wanted = APR_FINFO_NAME | APR_FINFO_SIZE; 
    while ((rv = apr_dir_read(&finfo, wanted, dir)) == APR_SUCCESS) { 
     printf("%s\t%10"PRIu64"\n", finfo.name, (uint64_t)finfo.size); 
    } 
    if (!APR_STATUS_IS_ENOENT(rv)) { 
     apr_fatal(rv); 
    } 

    // Clean up 
    apr_dir_close(dir); 
    apr_pool_destroy(pool); 
    apr_terminate(); 
    return 0; 
} 

static void apr_fatal(apr_status_t rv) 
{ 
    const int bufsize = 1000; 
    char buf[bufsize+1]; 
    printf("APR Error %d: %s\n", rv, apr_strerror(rv, buf, bufsize)); 
    exit(1); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^