本文整理汇总了C++中recursive_delete函数的典型用法代码示例。如果您正苦于以下问题:C++ recursive_delete函数的具体用法?C++ recursive_delete怎么用?C++ recursive_delete使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了recursive_delete函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: do_test_cstat_set_backup_list
static void do_test_cstat_set_backup_list(enum protocol protocol)
{
struct cstat *cstat;
cstat=setup_cstat(CNAME, protocol);
ck_assert_str_eq(CLIENTCONFDIR "/" CNAME, cstat->conffile);
cstat->permitted=1;
fail_unless(recursive_delete(BASE)==0);
build_storage_dirs((struct sdirs *)cstat->sdirs,
sd123, ARR_LEN(sd123));
fail_unless(!cstat_set_backup_list(cstat));
fail_unless(cstat->bu!=NULL);
fail_unless(recursive_delete(BASE)==0);
build_storage_dirs((struct sdirs *)cstat->sdirs,
sd13, ARR_LEN(sd13));
fail_unless(!cstat_set_backup_list(cstat));
fail_unless(cstat->bu!=NULL);
fail_unless(recursive_delete(BASE)==0);
build_storage_dirs((struct sdirs *)cstat->sdirs,
sd12345, ARR_LEN(sd12345));
fail_unless(!cstat_set_backup_list(cstat));
fail_unless(cstat->bu!=NULL);
cstat->permitted=0;
fail_unless(!cstat_set_backup_list(cstat));
fail_unless(cstat->bu==NULL);
tear_down(&cstat);
}
示例2: START_TEST
END_TEST
START_TEST(cleanup)
{
// Not a test. Just wanted to cleanup before and after this suite.
fail_unless(!recursive_delete(BASE));
fail_unless(!recursive_delete(SDIRS));
fail_unless(!recursive_delete(CONF_BASE));
}
示例3: run_find
static void run_find(const char *buf, FF_PKT *ff, struct conf **confs)
{
struct strlist *l;
const char *conffile=CONFBASE "/burp.conf";
fail_unless(!recursive_delete(CONFBASE));
build_file(conffile, buf);
fail_unless(!conf_load_global_only(conffile, confs));
for(l=get_strlist(confs[OPT_STARTDIR]); l; l=l->next) if(l->flag)
fail_unless(!find_files_begin(NULL, ff, confs, l->path));
fail_unless(!recursive_delete(CONFBASE));
}
示例4: check_for_rubble_burp2
int check_for_rubble_burp2(struct asfd *asfd, struct sdirs *sdirs,
const char *incexc, int *resume, struct conf *cconf)
{
// FIX THIS - currently just deletes the interrupted backup.
ssize_t len=0;
char *real=NULL;
char lnk[32]="";
if((len=readlink(sdirs->working, lnk, sizeof(lnk)-1))<0)
return 0;
else if(!len)
{
unlink(sdirs->working);
return 0;
}
lnk[len]='\0';
if(!(real=prepend_s(sdirs->client, lnk)))
{
log_and_send_oom(asfd, __func__);
return -1;
}
if(recursive_delete(real, "", 1))
{
char msg[256]="";
snprintf(msg, sizeof(msg),
"Could not remove interrupted directory: %s", real);
log_and_send(asfd, msg);
return -1;
}
unlink(sdirs->working);
return 0;
}
示例5: fail_unless
static FF_PKT *setup(struct conf ***confs)
{
FF_PKT *ff;
fail_unless(!recursive_delete(BASE));
// Create the root directory, so that we can figure out the absolute
// path to it, then delete it so that the root directory can be
// included when setting up the expected file system.
fail_unless(!mkdir(BASE, 0777));
fail_unless(realpath(BASE, fullpath)!=NULL);
fail_unless(!recursive_delete(BASE));
fail_unless((ff=find_files_init(send_file_callback))!=NULL);
*confs=setup_conf();
return ff;
}
示例6: test_manifest_tell_seek
END_TEST
static void test_manifest_tell_seek(enum protocol protocol, int phase)
{
struct slist *slist;
struct manio *manio;
struct sbuf *sb=NULL;
man_off_t *offset=NULL;
int entries=1000;
prng_init(0);
base64_init();
hexmap_init();
recursive_delete(path);
slist=build_manifest(path, protocol, entries, phase);
fail_unless(slist!=NULL);
sb=slist->head;
fail_unless((manio=do_manio_open(path, "rb", protocol, phase))!=NULL);
read_manifest(&sb, manio, 0, entries/2, protocol, phase);
fail_unless((offset=manio_tell(manio))!=NULL);
fail_unless(sb!=NULL);
fail_unless(!manio_close(&manio));
fail_unless((manio=do_manio_open(path, "rb", protocol, phase))!=NULL);
fail_unless(!manio_seek(manio, offset));
read_manifest(&sb, manio, entries/2, entries, protocol, phase);
fail_unless(sb==NULL);
fail_unless(!manio_close(&manio));
fail_unless(!manio);
slist_free(&slist);
man_off_t_free(&offset);
tear_down();
}
示例7: remove_files_from_dir
static int remove_files_from_dir(const char *path) {
DIR *dir;
struct dirent *entry;
dir = opendir(path);
if (dir) {
int exit_code = 0;
while ((entry = readdir(dir)) != NULL) {
if(strcmp(entry->d_name, ".") == 0
|| strcmp(entry->d_name, "..") == 0) {
continue;
}
char *newpath;
int bytesPrinted = asprintf(&newpath, "%s/%s", path, entry->d_name);
if (bytesPrinted == -1) {
//asprintf failed, stop the process
exit(EXIT_FAILURE);
}
if(newpath) {
// Recur on anything in the directory.
int new_exit = recursive_delete(newpath, 0);
if(!exit_code) {
exit_code = new_exit;
}
}
free(newpath);
}
closedir(dir);
return exit_code;
}
return -1;
}
示例8: deleteme_maybe_delete
int deleteme_maybe_delete(struct conf **cconfs, struct sdirs *sdirs)
{
// If manual_delete is on, they will have to delete the files
// manually, via a cron job or something.
if(get_string(cconfs[OPT_MANUAL_DELETE])) return 0;
return recursive_delete(sdirs->deleteme);
}
示例9: tear_down
static void tear_down(struct asfd **asfd)
{
asfd_free(asfd);
fail_unless(!fzp_close(&output));
fail_unless(!recursive_delete(CLIENTCONFDIR));
alloc_check();
}
示例10: tear_down
static void tear_down(struct asfd **asfd, struct sdirs **sdirs)
{
asfd_free(asfd);
asfd_mock_teardown(&reads, &writes);
sdirs_free(sdirs);
fail_unless(recursive_delete(BASE)==0);
alloc_check();
}
示例11: setup
static void setup(
struct sdirs **sdirs, struct fdirs **fdirs, struct conf ***confs)
{
if(sdirs) *sdirs=setup_sdirs();
if(fdirs) *fdirs=setup_fdirs(*sdirs);
if(confs) *confs=setup_conf();
fail_unless(!recursive_delete(BASE));
}
示例12: setup
static void setup(struct async **as,
struct sdirs **sdirs, struct conf ***confs)
{
if(as) *as=setup_async();
if(sdirs) *sdirs=setup_sdirs();
if(confs) *confs=setup_conf();
fail_unless(!recursive_delete(BASE));
}
示例13: hexmap_init
static struct dpth *setup(void)
{
struct dpth *dpth;
hexmap_init();
fail_unless(recursive_delete(lockpath, "", 1)==0);
fail_unless((dpth=dpth_alloc())!=NULL);
assert_components(dpth, 0, 0, 0, 0);
return dpth;
}
示例14: recursive_delete_w
static int recursive_delete_w(struct sdirs *sdirs, struct bu *bu)
{
if(recursive_delete(sdirs->deleteme, NULL, 1))
{
logp("Error when trying to delete %s\n", bu->path);
return -1;
}
return 0;
}
示例15: tear_down
static void tear_down(FF_PKT **ff, struct conf ***confs)
{
fail_unless(e==NULL);
find_files_free(ff);
confs_free(confs);
strlists_free(&expected);
fail_unless(recursive_delete(BASE)==0);
alloc_check();
}