VirtualBox

source: vbox/trunk/include/iprt/tar.h@ 27615

Last change on this file since 27615 was 21812, checked in by vboxsync, 15 years ago

Runtime: rename

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.4 KB
Line 
1/** @file
2 * IPRT - Tar archive I/O.
3 */
4
5/*
6 * Copyright (C) 2009 Sun Microsystems, Inc.
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 *
25 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
26 * Clara, CA 95054 USA or visit http://www.sun.com if you need
27 * additional information or have any questions.
28 */
29
30#ifndef ___iprt_tar_h
31#define ___iprt_tar_h
32
33#include <iprt/cdefs.h>
34#include <iprt/types.h>
35
36RT_C_DECLS_BEGIN
37
38/** @defgroup grp_rt_tar RTTar - Tar archive I/O
39 * @ingroup grp_rt
40 * @{
41 */
42
43/**
44 * Check if the specified file exists in the Tar archive.
45 *
46 * (The matching is case sensitive.)
47 *
48 * @note Currently only regular files are supported.
49 *
50 * @returns iprt status code.
51 * @retval VINF_SUCCESS when the file exists in the Tar archive.
52 * @retval VERR_FILE_NOT_FOUND when the file not exists in the Tar archive.
53 *
54 * @param pszTarFile Tar file to check.
55 * @param pszFile Filename to check for.
56 */
57RTR3DECL(int) RTTarQueryFileExists(const char *pszTarFile, const char *pszFile);
58
59/**
60 * Create a file list from a Tar archive.
61 *
62 * @note Currently only regular files are supported.
63 *
64 * @returns iprt status code.
65 *
66 * @param pszTarFile Tar file to list files from.
67 * @param ppapszFiles On success an array with array with the filenames is
68 * returned. The names must be freed with RTStrFree and
69 * the array with RTMemFree.
70 * @param pcFiles On success the number of entries in ppapszFiles.
71 */
72RTR3DECL(int) RTTarList(const char *pszTarFile, char ***ppapszFiles, size_t *pcFiles);
73
74/**
75 * Extract a set of files from a Tar archive.
76 *
77 * Also note that this function is atomic. If an error occurs all previously
78 * extracted files will be deleted.
79 *
80 * (The matching is case sensitive.)
81 *
82 * @note Currently only regular files are supported. Also some of the heade
83 * fields are not used (uid, gid, uname, gname, mtime).
84 *
85 * @returns iprt status code.
86 *
87 * @param pszTarFile Tar file to extract files from.
88 * @param pszOutputDir Where to store the extracted files. Must exist.
89 * @param papszFiles Which files should be extracted.
90 * @param cFiles The number of files in papszFiles.
91 */
92RTR3DECL(int) RTTarExtractFiles(const char *pszTarFile, const char *pszOutputDir, const char * const *papszFiles, size_t cFiles);
93
94/**
95 * Extract a file by index from a Tar archive.
96 *
97 * @note Currently only regular files are supported. Also some of the header
98 * fields are not used (uid, gid, uname, gname, mtime).
99 *
100 * @returns iprt status code.
101 * @retval VERR_FILE_NOT_FOUND when the index isn't valid.
102 *
103 * @param pszTarFile Tar file to extract the file from.
104 * @param pszOutputDir Where to store the extracted file. Must exist.
105 * @param iIndex Which file should be extracted, 0 based.
106 * @param ppszFileName On success the filename of the extracted file. Must
107 * be freed with RTStrFree.
108 */
109RTR3DECL(int) RTTarExtractByIndex(const char *pszTarFile, const char *pszOutputDir, size_t iIndex, char **ppszFileName);
110
111/**
112 * Create a Tar archive out of the given files.
113 *
114 * @note Currently only regular files are supported.
115 *
116 * @returns iprt status code.
117 *
118 * @param pszTarFile Where to create the Tar archive.
119 * @param papszFiles Which files should be included.
120 * @param cFiles The number of files in papszFiles.
121 */
122RTR3DECL(int) RTTarCreate(const char *pszTarFile, const char * const *papszFiles, size_t cFiles);
123
124/** @} */
125
126RT_C_DECLS_END
127
128#endif /* ___iprt_tar_h */
129
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette