Ejemplo n.º 1
0
int command_delete(args_t * args)
{
	assert(args != NULL);

	/* ========================= */

	int delete(args_t * args, off_t poffset)
	{
		const char * target = args->target;
		int debug = args->debug;

		RAII(FILE*, file, fopen_generic(target, "r+", debug), fclose);
		RAII(ffs_t*, ffs, __ffs_fopen(file, poffset), __ffs_fclose);

		if (__ffs_entry_delete(ffs, args->name) < 0)
			return -1;

		if (args->verbose == f_VERBOSE)
			printf("%llx: %s: delete\n", (long long)poffset, args->name);

		return 0;
	}

	/* ========================= */

	return command(args, delete);
}
Ejemplo n.º 2
0
Archivo: libffs2.c Proyecto: gdhh/ffs
int ffs_entry_delete(ffs_t * self, const char *path)
{
	int rc = __ffs_entry_delete(self, path);
	if (rc < 0) {
		err_t *err = err_get();
		assert(err != NULL);

		__error.errnum = err_code(err);
		snprintf(__error.errstr, sizeof __error.errstr,
			 "%s: %s : %s(%d) : (code=%d) %.*s\n",
			 program_invocation_short_name,
			 err_type_name(err), err_file(err), err_line(err),
			 err_code(err), err_size(err), (char *)err_data(err));

		rc = -1;
	}

	return rc;
}