1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>libimobiledevice: libimobiledevice/afc.h File Reference</title>
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10
<!-- Generated by Doxygen 1.6.1 -->
11
<div class="navigation" id="top">
14
<li><a href="index.html"><span>Main Page</span></a></li>
15
<li><a href="annotated.html"><span>Data Structures</span></a></li>
16
<li class="current"><a href="files.html"><span>Files</span></a></li>
21
<li><a href="files.html"><span>File List</span></a></li>
22
<li><a href="globals.html"><span>Globals</span></a></li>
26
<div class="contents">
27
<h1>libimobiledevice/afc.h File Reference</h1>
28
<p>AFC Implementation.
29
<a href="#_details">More...</a></p>
30
<table border="0" cellpadding="0" cellspacing="0">
31
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
32
<tr><td class="memItemLeft" align="right" valign="top">typedef int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a></td></tr>
33
<tr><td class="mdescLeft"> </td><td class="mdescRight">Represents an error code. <a href="#afa46b7e1ac472a5589d85d6a6a7104fb"></a><br/></td></tr>
34
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structafc__client__private.html">afc_client_private</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a06351ca31179c322c0a5eb4f13296ec7">afc_client_t</a></td></tr>
35
<tr><td class="mdescLeft"> </td><td class="mdescRight">The client handle. <a href="#a06351ca31179c322c0a5eb4f13296ec7"></a><br/></td></tr>
36
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
37
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3">afc_file_mode_t</a> { <br/>
38
<a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3ace320ad23183a226f6190ced9b964a3d">AFC_FOPEN_RDONLY</a> = 0x00000001,
40
<a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3adf63c6ca559c2a71e3a38b03f92b83bf">AFC_FOPEN_RW</a> = 0x00000002,
42
<a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3a5602b891683cb6ecbce94de52282c59f">AFC_FOPEN_WRONLY</a> = 0x00000003,
44
<a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3ae06639e4e35efa0bc1087604fde1e86b">AFC_FOPEN_WR</a> = 0x00000004,
46
<a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3a94b02ac741240ef5ca1e8355cdf164e5">AFC_FOPEN_APPEND</a> = 0x00000005,
48
<a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3a5e28cdfc3c3a503669a4a9aaef53b183">AFC_FOPEN_RDAPPEND</a> = 0x00000006
51
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Flags for afc_file_open. </p>
52
<a href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3">More...</a><br/></td></tr>
53
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a1885d5e53edde8732633621768db5908">afc_link_type_t</a> { <br/>
54
<b>AFC_HARDLINK</b> = 1,
56
<b>AFC_SYMLINK</b> = 2
59
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Type of link for <a class="el" href="include_2libimobiledevice_2afc_8h.html#ab5ade933b44d1f913df91d1065faa33a" title="Creates a hard link or symbolic link on the device.">afc_make_link()</a> calls. </p>
61
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9f">afc_lock_op_t</a> { <br/>
62
<a class="el" href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9fad8a9e6665fb10f161b6b8f39c612c9e4">AFC_LOCK_SH</a> = 1 | 4,
64
<a class="el" href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9fac7449d6d73af14e0250d645c6d8730ff">AFC_LOCK_EX</a> = 2 | 4,
66
<a class="el" href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9facde3c1991b04c6277021250d44e3eb65">AFC_LOCK_UN</a> = 8 | 4
69
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Lock operation flags. </p>
70
<a href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9f">More...</a><br/></td></tr>
71
<tr><td colspan="2"><h2>Functions</h2></td></tr>
72
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a1b409e6038694b8124e5e671cd528a75">afc_client_new</a> (<a class="el" href="structidevice__private.html">idevice_t</a> device, uint16_t port, <a class="el" href="structafc__client__private.html">afc_client_t</a> *client)</td></tr>
73
<tr><td class="mdescLeft"> </td><td class="mdescRight">Makes a connection to the AFC service on the phone. <a href="#a1b409e6038694b8124e5e671cd528a75"></a><br/></td></tr>
74
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a1cee6b357bdd7f187b7411a41c136412">afc_client_free</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client)</td></tr>
75
<tr><td class="mdescLeft"> </td><td class="mdescRight">Disconnects an AFC client from the phone. <a href="#a1cee6b357bdd7f187b7411a41c136412"></a><br/></td></tr>
76
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#ab4b5ee19121c0283364d3cee5b72cc15">afc_get_device_info</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, char ***infos)</td></tr>
77
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get device info for a client connection to phone. <a href="#ab4b5ee19121c0283364d3cee5b72cc15"></a><br/></td></tr>
78
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#aa5dcaf88c17b087b5140fe9a9ada21b0">afc_read_directory</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *dir, char ***list)</td></tr>
79
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets a directory listing of the directory requested. <a href="#aa5dcaf88c17b087b5140fe9a9ada21b0"></a><br/></td></tr>
80
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a0b7a62789a2208576ebc1c7794f30f13">afc_get_file_info</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *filename, char ***infolist)</td></tr>
81
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets information about a specific file. <a href="#a0b7a62789a2208576ebc1c7794f30f13"></a><br/></td></tr>
82
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a2dbfca1d64e26daf9691ba2ddabc92ba">afc_file_open</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *filename, <a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3">afc_file_mode_t</a> file_mode, uint64_t *handle)</td></tr>
83
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opens a file on the phone. <a href="#a2dbfca1d64e26daf9691ba2ddabc92ba"></a><br/></td></tr>
84
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#adb90e6f46af885948a91d328ca2e8c21">afc_file_close</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, uint64_t handle)</td></tr>
85
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes a file on the phone. <a href="#adb90e6f46af885948a91d328ca2e8c21"></a><br/></td></tr>
86
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a37c91f506bdab578d2eec9145fd7d9a7">afc_file_lock</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, uint64_t handle, <a class="el" href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9f">afc_lock_op_t</a> operation)</td></tr>
87
<tr><td class="mdescLeft"> </td><td class="mdescRight">Locks or unlocks a file on the phone. <a href="#a37c91f506bdab578d2eec9145fd7d9a7"></a><br/></td></tr>
88
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#aa6a30ec41e4e9b7a7f1011c52917e3a3">afc_file_read</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, uint64_t handle, char *data, uint32_t length, uint32_t *bytes_read)</td></tr>
89
<tr><td class="mdescLeft"> </td><td class="mdescRight">Attempts to the read the given number of bytes from the given file. <a href="#aa6a30ec41e4e9b7a7f1011c52917e3a3"></a><br/></td></tr>
90
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a034289b2f220b0f56f2155537e59d2ab">afc_file_write</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, uint64_t handle, const char *data, uint32_t length, uint32_t *bytes_written)</td></tr>
91
<tr><td class="mdescLeft"> </td><td class="mdescRight">Writes a given number of bytes to a file. <a href="#a034289b2f220b0f56f2155537e59d2ab"></a><br/></td></tr>
92
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a3f0ebaea303e1fe2b84082ca40e3468d">afc_file_seek</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, uint64_t handle, int64_t offset, int whence)</td></tr>
93
<tr><td class="mdescLeft"> </td><td class="mdescRight">Seeks to a given position of a pre-opened file on the phone. <a href="#a3f0ebaea303e1fe2b84082ca40e3468d"></a><br/></td></tr>
94
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a5ba8a781ea81b2ce09d2fd8a182b3624">afc_file_tell</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, uint64_t handle, uint64_t *position)</td></tr>
95
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns current position in a pre-opened file on the phone. <a href="#a5ba8a781ea81b2ce09d2fd8a182b3624"></a><br/></td></tr>
96
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#ad1e44fb7e9b6445841813f522705a721">afc_file_truncate</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, uint64_t handle, uint64_t newsize)</td></tr>
97
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the size of a file on the phone. <a href="#ad1e44fb7e9b6445841813f522705a721"></a><br/></td></tr>
98
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#aefd69b3b2168543c06833f9507858b63">afc_remove_path</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *path)</td></tr>
99
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes a file or directory. <a href="#aefd69b3b2168543c06833f9507858b63"></a><br/></td></tr>
100
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a0c783fb34679a9be39e96aeac2f38801">afc_rename_path</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *from, const char *to)</td></tr>
101
<tr><td class="mdescLeft"> </td><td class="mdescRight">Renames a file or directory on the phone. <a href="#a0c783fb34679a9be39e96aeac2f38801"></a><br/></td></tr>
102
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a57135ac755a1312271d7218432238008">afc_make_directory</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *dir)</td></tr>
103
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a directory on the phone. <a href="#a57135ac755a1312271d7218432238008"></a><br/></td></tr>
104
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a8b2a2e73c45e378379fe3e7daddd717b">afc_truncate</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *path, uint64_t newsize)</td></tr>
105
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the size of a file on the phone without prior opening it. <a href="#a8b2a2e73c45e378379fe3e7daddd717b"></a><br/></td></tr>
106
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#ab5ade933b44d1f913df91d1065faa33a">afc_make_link</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, <a class="el" href="include_2libimobiledevice_2afc_8h.html#a1885d5e53edde8732633621768db5908">afc_link_type_t</a> linktype, const char *target, const char *linkname)</td></tr>
107
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a hard link or symbolic link on the device. <a href="#ab5ade933b44d1f913df91d1065faa33a"></a><br/></td></tr>
108
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a7783580ec92f8374e1e0836ac006cf07">afc_set_file_time</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *path, uint64_t mtime)</td></tr>
109
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the modification time of a file on the phone. <a href="#a7783580ec92f8374e1e0836ac006cf07"></a><br/></td></tr>
110
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a6b5608bfa08dc160ef68e49c4da167d9">afc_get_device_info_key</a> (<a class="el" href="structafc__client__private.html">afc_client_t</a> client, const char *key, char **value)</td></tr>
111
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a specific key of the device info list for a client connection. <a href="#a6b5608bfa08dc160ef68e49c4da167d9"></a><br/></td></tr>
112
<tr><td colspan="2"><h2>Error Codes</h2></td></tr>
113
<tr><td colspan="2"><p><a class="anchor" id="amgrp5c244138ac975df1b1cec1afc71a6c9a"></a> </p>
115
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab07433a380539e391b7a5c7705e942f6"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_SUCCESS" ref="ab07433a380539e391b7a5c7705e942f6" args="" -->
116
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_SUCCESS</b> 0</td></tr>
117
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1926af9401f4270b0f1b564fa24b99a"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_UNKNOWN_ERROR" ref="aa1926af9401f4270b0f1b564fa24b99a" args="" -->
118
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_UNKNOWN_ERROR</b> 1</td></tr>
119
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adee408e5e39812c6e22af1b16ad38b9d"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OP_HEADER_INVALID" ref="adee408e5e39812c6e22af1b16ad38b9d" args="" -->
120
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OP_HEADER_INVALID</b> 2</td></tr>
121
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9f4a1e1b7c5991a085e6cca7d03069c"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_NO_RESOURCES" ref="af9f4a1e1b7c5991a085e6cca7d03069c" args="" -->
122
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_NO_RESOURCES</b> 3</td></tr>
123
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c53787a704f318a1378e67a2bd54821"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_READ_ERROR" ref="a5c53787a704f318a1378e67a2bd54821" args="" -->
124
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_READ_ERROR</b> 4</td></tr>
125
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d4fa779457277f4abc52f66770144c1"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_WRITE_ERROR" ref="a7d4fa779457277f4abc52f66770144c1" args="" -->
126
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_WRITE_ERROR</b> 5</td></tr>
127
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05e656de9a72fff6232651f75baf0fb2"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_UNKNOWN_PACKET_TYPE" ref="a05e656de9a72fff6232651f75baf0fb2" args="" -->
128
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_UNKNOWN_PACKET_TYPE</b> 6</td></tr>
129
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84ee95db5fefd25852cc3ed2e6c520b0"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_INVALID_ARG" ref="a84ee95db5fefd25852cc3ed2e6c520b0" args="" -->
130
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_INVALID_ARG</b> 7</td></tr>
131
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad45141ba3f4448a4b8a59d4a2fb41477"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OBJECT_NOT_FOUND" ref="ad45141ba3f4448a4b8a59d4a2fb41477" args="" -->
132
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OBJECT_NOT_FOUND</b> 8</td></tr>
133
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad61a9270ebe5fab4fe6d7abeffe5e03"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OBJECT_IS_DIR" ref="aad61a9270ebe5fab4fe6d7abeffe5e03" args="" -->
134
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OBJECT_IS_DIR</b> 9</td></tr>
135
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a851876a334167f788b36bed750612b6d"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_PERM_DENIED" ref="a851876a334167f788b36bed750612b6d" args="" -->
136
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_PERM_DENIED</b> 10</td></tr>
137
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5430bdc338ac51057460593e9829117f"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_SERVICE_NOT_CONNECTED" ref="a5430bdc338ac51057460593e9829117f" args="" -->
138
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_SERVICE_NOT_CONNECTED</b> 11</td></tr>
139
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78934c5e55d17e0112fd4b5ebe1bad49"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OP_TIMEOUT" ref="a78934c5e55d17e0112fd4b5ebe1bad49" args="" -->
140
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OP_TIMEOUT</b> 12</td></tr>
141
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3181ea4588a8943710a4a70d7a4a653d"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_TOO_MUCH_DATA" ref="a3181ea4588a8943710a4a70d7a4a653d" args="" -->
142
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_TOO_MUCH_DATA</b> 13</td></tr>
143
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a94fc6f077acc4be683b3d08b15373f"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_END_OF_DATA" ref="a8a94fc6f077acc4be683b3d08b15373f" args="" -->
144
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_END_OF_DATA</b> 14</td></tr>
145
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac47b554f4ee2671f9dd4142e7fb42dff"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OP_NOT_SUPPORTED" ref="ac47b554f4ee2671f9dd4142e7fb42dff" args="" -->
146
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OP_NOT_SUPPORTED</b> 15</td></tr>
147
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72bb97c20d794e8f81b008a422734735"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OBJECT_EXISTS" ref="a72bb97c20d794e8f81b008a422734735" args="" -->
148
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OBJECT_EXISTS</b> 16</td></tr>
149
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c77bea2fd6574c304c89d1691bc8525"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OBJECT_BUSY" ref="a7c77bea2fd6574c304c89d1691bc8525" args="" -->
150
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OBJECT_BUSY</b> 17</td></tr>
151
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ef3970c52be6569d2a0211029d6b429"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_NO_SPACE_LEFT" ref="a8ef3970c52be6569d2a0211029d6b429" args="" -->
152
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_NO_SPACE_LEFT</b> 18</td></tr>
153
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a267bd6031da001632b9bceb2bda2368a"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OP_WOULD_BLOCK" ref="a267bd6031da001632b9bceb2bda2368a" args="" -->
154
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OP_WOULD_BLOCK</b> 19</td></tr>
155
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a700ab04a8e9a57232703ae424eb7949e"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_IO_ERROR" ref="a700ab04a8e9a57232703ae424eb7949e" args="" -->
156
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_IO_ERROR</b> 20</td></tr>
157
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a48a536950b1375cbcbdb7b4ccfce60c7"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OP_INTERRUPTED" ref="a48a536950b1375cbcbdb7b4ccfce60c7" args="" -->
158
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OP_INTERRUPTED</b> 21</td></tr>
159
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9bbe91a7184d137eec542631cef82c54"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_OP_IN_PROGRESS" ref="a9bbe91a7184d137eec542631cef82c54" args="" -->
160
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_OP_IN_PROGRESS</b> 22</td></tr>
161
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55c4136e5ffc221debf292dfec7ba9f6"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_INTERNAL_ERROR" ref="a55c4136e5ffc221debf292dfec7ba9f6" args="" -->
162
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_INTERNAL_ERROR</b> 23</td></tr>
163
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9dc49253e9a538348288ac1fff89d40"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_MUX_ERROR" ref="ab9dc49253e9a538348288ac1fff89d40" args="" -->
164
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_MUX_ERROR</b> 30</td></tr>
165
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab547b433e90e0707b024f3a244464b6c"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_NO_MEM" ref="ab547b433e90e0707b024f3a244464b6c" args="" -->
166
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_NO_MEM</b> 31</td></tr>
167
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68604b8c3198ee0f540d4634cbc031ba"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_NOT_ENOUGH_DATA" ref="a68604b8c3198ee0f540d4634cbc031ba" args="" -->
168
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_NOT_ENOUGH_DATA</b> 32</td></tr>
169
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad021c046a5ab15a9a981d54ec0e58c44"></a><!-- doxytag: member="include/libimobiledevice/afc.h::AFC_E_DIR_NOT_EMPTY" ref="ad021c046a5ab15a9a981d54ec0e58c44" args="" -->
170
#define </td><td class="memItemRight" valign="bottom"><b>AFC_E_DIR_NOT_EMPTY</b> 33</td></tr>
172
<hr/><a name="_details"></a><h2>Detailed Description</h2>
173
<p>AFC Implementation. </p>
174
<hr/><h2>Typedef Documentation</h2>
175
<a class="anchor" id="a06351ca31179c322c0a5eb4f13296ec7"></a><!-- doxytag: member="afc.h::afc_client_t" ref="a06351ca31179c322c0a5eb4f13296ec7" args="" -->
176
<div class="memitem">
177
<div class="memproto">
178
<table class="memname">
180
<td class="memname">typedef <a class="el" href="structafc__client__private.html">afc_client_private</a>* <a class="el" href="structafc__client__private.html">afc_client_t</a></td>
186
<p>The client handle. </p>
190
<a class="anchor" id="afa46b7e1ac472a5589d85d6a6a7104fb"></a><!-- doxytag: member="afc.h::afc_error_t" ref="afa46b7e1ac472a5589d85d6a6a7104fb" args="" -->
191
<div class="memitem">
192
<div class="memproto">
193
<table class="memname">
195
<td class="memname">typedef int16_t <a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a></td>
201
<p>Represents an error code. </p>
205
<hr/><h2>Enumeration Type Documentation</h2>
206
<a class="anchor" id="af7a2fa8f957bce530bd7b3aa8c3c3bf3"></a><!-- doxytag: member="afc.h::afc_file_mode_t" ref="af7a2fa8f957bce530bd7b3aa8c3c3bf3" args="" -->
207
<div class="memitem">
208
<div class="memproto">
209
<table class="memname">
211
<td class="memname">enum <a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3">afc_file_mode_t</a></td>
217
<p>Flags for afc_file_open. </p>
218
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
219
<tr><td valign="top"><em><a class="anchor" id="af7a2fa8f957bce530bd7b3aa8c3c3bf3ace320ad23183a226f6190ced9b964a3d"></a><!-- doxytag: member="AFC_FOPEN_RDONLY" ref="af7a2fa8f957bce530bd7b3aa8c3c3bf3ace320ad23183a226f6190ced9b964a3d" args="" -->AFC_FOPEN_RDONLY</em> </td><td>
222
<tr><td valign="top"><em><a class="anchor" id="af7a2fa8f957bce530bd7b3aa8c3c3bf3adf63c6ca559c2a71e3a38b03f92b83bf"></a><!-- doxytag: member="AFC_FOPEN_RW" ref="af7a2fa8f957bce530bd7b3aa8c3c3bf3adf63c6ca559c2a71e3a38b03f92b83bf" args="" -->AFC_FOPEN_RW</em> </td><td>
223
<p>r+ O_RDWR | O_CREAT </p>
225
<tr><td valign="top"><em><a class="anchor" id="af7a2fa8f957bce530bd7b3aa8c3c3bf3a5602b891683cb6ecbce94de52282c59f"></a><!-- doxytag: member="AFC_FOPEN_WRONLY" ref="af7a2fa8f957bce530bd7b3aa8c3c3bf3a5602b891683cb6ecbce94de52282c59f" args="" -->AFC_FOPEN_WRONLY</em> </td><td>
226
<p>w O_WRONLY | O_CREAT | O_TRUNC </p>
228
<tr><td valign="top"><em><a class="anchor" id="af7a2fa8f957bce530bd7b3aa8c3c3bf3ae06639e4e35efa0bc1087604fde1e86b"></a><!-- doxytag: member="AFC_FOPEN_WR" ref="af7a2fa8f957bce530bd7b3aa8c3c3bf3ae06639e4e35efa0bc1087604fde1e86b" args="" -->AFC_FOPEN_WR</em> </td><td>
229
<p>w+ O_RDWR | O_CREAT | O_TRUNC </p>
231
<tr><td valign="top"><em><a class="anchor" id="af7a2fa8f957bce530bd7b3aa8c3c3bf3a94b02ac741240ef5ca1e8355cdf164e5"></a><!-- doxytag: member="AFC_FOPEN_APPEND" ref="af7a2fa8f957bce530bd7b3aa8c3c3bf3a94b02ac741240ef5ca1e8355cdf164e5" args="" -->AFC_FOPEN_APPEND</em> </td><td>
232
<p>a O_WRONLY | O_APPEND | O_CREAT </p>
234
<tr><td valign="top"><em><a class="anchor" id="af7a2fa8f957bce530bd7b3aa8c3c3bf3a5e28cdfc3c3a503669a4a9aaef53b183"></a><!-- doxytag: member="AFC_FOPEN_RDAPPEND" ref="af7a2fa8f957bce530bd7b3aa8c3c3bf3a5e28cdfc3c3a503669a4a9aaef53b183" args="" -->AFC_FOPEN_RDAPPEND</em> </td><td>
235
<p>a+ O_RDWR | O_APPEND | O_CREAT </p>
243
<a class="anchor" id="ab249684dc55f8ec52b31db88fff35d9f"></a><!-- doxytag: member="afc.h::afc_lock_op_t" ref="ab249684dc55f8ec52b31db88fff35d9f" args="" -->
244
<div class="memitem">
245
<div class="memproto">
246
<table class="memname">
248
<td class="memname">enum <a class="el" href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9f">afc_lock_op_t</a></td>
254
<p>Lock operation flags. </p>
255
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
256
<tr><td valign="top"><em><a class="anchor" id="ab249684dc55f8ec52b31db88fff35d9fad8a9e6665fb10f161b6b8f39c612c9e4"></a><!-- doxytag: member="AFC_LOCK_SH" ref="ab249684dc55f8ec52b31db88fff35d9fad8a9e6665fb10f161b6b8f39c612c9e4" args="" -->AFC_LOCK_SH</em> </td><td>
259
<tr><td valign="top"><em><a class="anchor" id="ab249684dc55f8ec52b31db88fff35d9fac7449d6d73af14e0250d645c6d8730ff"></a><!-- doxytag: member="AFC_LOCK_EX" ref="ab249684dc55f8ec52b31db88fff35d9fac7449d6d73af14e0250d645c6d8730ff" args="" -->AFC_LOCK_EX</em> </td><td>
260
<p>exclusive lock </p>
262
<tr><td valign="top"><em><a class="anchor" id="ab249684dc55f8ec52b31db88fff35d9facde3c1991b04c6277021250d44e3eb65"></a><!-- doxytag: member="AFC_LOCK_UN" ref="ab249684dc55f8ec52b31db88fff35d9facde3c1991b04c6277021250d44e3eb65" args="" -->AFC_LOCK_UN</em> </td><td>
271
<hr/><h2>Function Documentation</h2>
272
<a class="anchor" id="a1cee6b357bdd7f187b7411a41c136412"></a><!-- doxytag: member="afc.h::afc_client_free" ref="a1cee6b357bdd7f187b7411a41c136412" args="(afc_client_t client)" -->
273
<div class="memitem">
274
<div class="memproto">
275
<table class="memname">
277
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_client_free </td>
279
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
280
<td class="paramname"> <em>client</em></td>
281
<td> ) </td>
288
<p>Disconnects an AFC client from the phone. </p>
289
<dl><dt><b>Parameters:</b></dt><dd>
290
<table border="0" cellspacing="2" cellpadding="0">
291
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to disconnect. </td></tr>
298
<a class="anchor" id="a1b409e6038694b8124e5e671cd528a75"></a><!-- doxytag: member="afc.h::afc_client_new" ref="a1b409e6038694b8124e5e671cd528a75" args="(idevice_t device, uint16_t port, afc_client_t *client)" -->
299
<div class="memitem">
300
<div class="memproto">
301
<table class="memname">
303
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_client_new </td>
305
<td class="paramtype"><a class="el" href="structidevice__private.html">idevice_t</a> </td>
306
<td class="paramname"> <em>device</em>, </td>
309
<td class="paramkey"></td>
311
<td class="paramtype">uint16_t </td>
312
<td class="paramname"> <em>port</em>, </td>
315
<td class="paramkey"></td>
317
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> * </td>
318
<td class="paramname"> <em>client</em></td><td> </td>
323
<td></td><td></td><td></td>
329
<p>Makes a connection to the AFC service on the phone. </p>
330
<dl><dt><b>Parameters:</b></dt><dd>
331
<table border="0" cellspacing="2" cellpadding="0">
332
<tr><td valign="top"></td><td valign="top"><em>device</em> </td><td>The device to connect to. </td></tr>
333
<tr><td valign="top"></td><td valign="top"><em>port</em> </td><td>The destination port. </td></tr>
334
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>Pointer that will be set to a newly allocated afc_client_t upon successful return.</td></tr>
338
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success, AFC_E_INVALID_ARG when device or port is invalid, AFC_E_MUX_ERROR when the connection failed, or AFC_E_NO_MEM if there is a memory allocation problem. </dd></dl>
342
<a class="anchor" id="adb90e6f46af885948a91d328ca2e8c21"></a><!-- doxytag: member="afc.h::afc_file_close" ref="adb90e6f46af885948a91d328ca2e8c21" args="(afc_client_t client, uint64_t handle)" -->
343
<div class="memitem">
344
<div class="memproto">
345
<table class="memname">
347
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_close </td>
349
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
350
<td class="paramname"> <em>client</em>, </td>
353
<td class="paramkey"></td>
355
<td class="paramtype">uint64_t </td>
356
<td class="paramname"> <em>handle</em></td><td> </td>
361
<td></td><td></td><td></td>
367
<p>Closes a file on the phone. </p>
368
<dl><dt><b>Parameters:</b></dt><dd>
369
<table border="0" cellspacing="2" cellpadding="0">
370
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to close the file with. </td></tr>
371
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>File handle of a previously opened file. </td></tr>
378
<a class="anchor" id="a37c91f506bdab578d2eec9145fd7d9a7"></a><!-- doxytag: member="afc.h::afc_file_lock" ref="a37c91f506bdab578d2eec9145fd7d9a7" args="(afc_client_t client, uint64_t handle, afc_lock_op_t operation)" -->
379
<div class="memitem">
380
<div class="memproto">
381
<table class="memname">
383
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_lock </td>
385
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
386
<td class="paramname"> <em>client</em>, </td>
389
<td class="paramkey"></td>
391
<td class="paramtype">uint64_t </td>
392
<td class="paramname"> <em>handle</em>, </td>
395
<td class="paramkey"></td>
397
<td class="paramtype"><a class="el" href="include_2libimobiledevice_2afc_8h.html#ab249684dc55f8ec52b31db88fff35d9f">afc_lock_op_t</a> </td>
398
<td class="paramname"> <em>operation</em></td><td> </td>
403
<td></td><td></td><td></td>
409
<p>Locks or unlocks a file on the phone. </p>
410
<p>makes use of flock on the device, see <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/flock.2.html">http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/flock.2.html</a></p>
411
<dl><dt><b>Parameters:</b></dt><dd>
412
<table border="0" cellspacing="2" cellpadding="0">
413
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to lock the file with. </td></tr>
414
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>File handle of a previously opened file. </td></tr>
415
<tr><td valign="top"></td><td valign="top"><em>operation</em> </td><td>the lock or unlock operation to perform, this is one of AFC_LOCK_SH (shared lock), AFC_LOCK_EX (exclusive lock), or AFC_LOCK_UN (unlock). </td></tr>
422
<a class="anchor" id="a2dbfca1d64e26daf9691ba2ddabc92ba"></a><!-- doxytag: member="afc.h::afc_file_open" ref="a2dbfca1d64e26daf9691ba2ddabc92ba" args="(afc_client_t client, const char *filename, afc_file_mode_t file_mode, uint64_t *handle)" -->
423
<div class="memitem">
424
<div class="memproto">
425
<table class="memname">
427
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_open </td>
429
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
430
<td class="paramname"> <em>client</em>, </td>
433
<td class="paramkey"></td>
435
<td class="paramtype">const char * </td>
436
<td class="paramname"> <em>filename</em>, </td>
439
<td class="paramkey"></td>
441
<td class="paramtype"><a class="el" href="include_2libimobiledevice_2afc_8h.html#af7a2fa8f957bce530bd7b3aa8c3c3bf3">afc_file_mode_t</a> </td>
442
<td class="paramname"> <em>file_mode</em>, </td>
445
<td class="paramkey"></td>
447
<td class="paramtype">uint64_t * </td>
448
<td class="paramname"> <em>handle</em></td><td> </td>
453
<td></td><td></td><td></td>
459
<p>Opens a file on the phone. </p>
460
<dl><dt><b>Parameters:</b></dt><dd>
461
<table border="0" cellspacing="2" cellpadding="0">
462
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to open the file. </td></tr>
463
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>The file to open. (must be a fully-qualified path) </td></tr>
464
<tr><td valign="top"></td><td valign="top"><em>file_mode</em> </td><td>The mode to use to open the file. Can be AFC_FILE_READ or AFC_FILE_WRITE; the former lets you read and write, however, and the second one will *create* the file, destroying anything previously there. </td></tr>
465
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>Pointer to a uint64_t that will hold the handle of the file</td></tr>
469
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
473
<a class="anchor" id="aa6a30ec41e4e9b7a7f1011c52917e3a3"></a><!-- doxytag: member="afc.h::afc_file_read" ref="aa6a30ec41e4e9b7a7f1011c52917e3a3" args="(afc_client_t client, uint64_t handle, char *data, uint32_t length, uint32_t *bytes_read)" -->
474
<div class="memitem">
475
<div class="memproto">
476
<table class="memname">
478
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_read </td>
480
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
481
<td class="paramname"> <em>client</em>, </td>
484
<td class="paramkey"></td>
486
<td class="paramtype">uint64_t </td>
487
<td class="paramname"> <em>handle</em>, </td>
490
<td class="paramkey"></td>
492
<td class="paramtype">char * </td>
493
<td class="paramname"> <em>data</em>, </td>
496
<td class="paramkey"></td>
498
<td class="paramtype">uint32_t </td>
499
<td class="paramname"> <em>length</em>, </td>
502
<td class="paramkey"></td>
504
<td class="paramtype">uint32_t * </td>
505
<td class="paramname"> <em>bytes_read</em></td><td> </td>
510
<td></td><td></td><td></td>
516
<p>Attempts to the read the given number of bytes from the given file. </p>
517
<dl><dt><b>Parameters:</b></dt><dd>
518
<table border="0" cellspacing="2" cellpadding="0">
519
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The relevant AFC client </td></tr>
520
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>File handle of a previously opened file </td></tr>
521
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>The pointer to the memory region to store the read data </td></tr>
522
<tr><td valign="top"></td><td valign="top"><em>length</em> </td><td>The number of bytes to read </td></tr>
523
<tr><td valign="top"></td><td valign="top"><em>bytes_read</em> </td><td>The number of bytes actually read.</td></tr>
527
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
531
<a class="anchor" id="a3f0ebaea303e1fe2b84082ca40e3468d"></a><!-- doxytag: member="afc.h::afc_file_seek" ref="a3f0ebaea303e1fe2b84082ca40e3468d" args="(afc_client_t client, uint64_t handle, int64_t offset, int whence)" -->
532
<div class="memitem">
533
<div class="memproto">
534
<table class="memname">
536
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_seek </td>
538
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
539
<td class="paramname"> <em>client</em>, </td>
542
<td class="paramkey"></td>
544
<td class="paramtype">uint64_t </td>
545
<td class="paramname"> <em>handle</em>, </td>
548
<td class="paramkey"></td>
550
<td class="paramtype">int64_t </td>
551
<td class="paramname"> <em>offset</em>, </td>
554
<td class="paramkey"></td>
556
<td class="paramtype">int </td>
557
<td class="paramname"> <em>whence</em></td><td> </td>
562
<td></td><td></td><td></td>
568
<p>Seeks to a given position of a pre-opened file on the phone. </p>
569
<dl><dt><b>Parameters:</b></dt><dd>
570
<table border="0" cellspacing="2" cellpadding="0">
571
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to seek to the position. </td></tr>
572
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>File handle of a previously opened. </td></tr>
573
<tr><td valign="top"></td><td valign="top"><em>offset</em> </td><td>Seek offset. </td></tr>
574
<tr><td valign="top"></td><td valign="top"><em>whence</em> </td><td>Seeking direction, one of SEEK_SET, SEEK_CUR, or SEEK_END.</td></tr>
578
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
582
<a class="anchor" id="a5ba8a781ea81b2ce09d2fd8a182b3624"></a><!-- doxytag: member="afc.h::afc_file_tell" ref="a5ba8a781ea81b2ce09d2fd8a182b3624" args="(afc_client_t client, uint64_t handle, uint64_t *position)" -->
583
<div class="memitem">
584
<div class="memproto">
585
<table class="memname">
587
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_tell </td>
589
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
590
<td class="paramname"> <em>client</em>, </td>
593
<td class="paramkey"></td>
595
<td class="paramtype">uint64_t </td>
596
<td class="paramname"> <em>handle</em>, </td>
599
<td class="paramkey"></td>
601
<td class="paramtype">uint64_t * </td>
602
<td class="paramname"> <em>position</em></td><td> </td>
607
<td></td><td></td><td></td>
613
<p>Returns current position in a pre-opened file on the phone. </p>
614
<dl><dt><b>Parameters:</b></dt><dd>
615
<table border="0" cellspacing="2" cellpadding="0">
616
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use. </td></tr>
617
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>File handle of a previously opened file. </td></tr>
618
<tr><td valign="top"></td><td valign="top"><em>position</em> </td><td>Position in bytes of indicator</td></tr>
622
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
626
<a class="anchor" id="ad1e44fb7e9b6445841813f522705a721"></a><!-- doxytag: member="afc.h::afc_file_truncate" ref="ad1e44fb7e9b6445841813f522705a721" args="(afc_client_t client, uint64_t handle, uint64_t newsize)" -->
627
<div class="memitem">
628
<div class="memproto">
629
<table class="memname">
631
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_truncate </td>
633
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
634
<td class="paramname"> <em>client</em>, </td>
637
<td class="paramkey"></td>
639
<td class="paramtype">uint64_t </td>
640
<td class="paramname"> <em>handle</em>, </td>
643
<td class="paramkey"></td>
645
<td class="paramtype">uint64_t </td>
646
<td class="paramname"> <em>newsize</em></td><td> </td>
651
<td></td><td></td><td></td>
657
<p>Sets the size of a file on the phone. </p>
658
<dl><dt><b>Parameters:</b></dt><dd>
659
<table border="0" cellspacing="2" cellpadding="0">
660
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to set the file size. </td></tr>
661
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>File handle of a previously opened file. </td></tr>
662
<tr><td valign="top"></td><td valign="top"><em>newsize</em> </td><td>The size to set the file to.</td></tr>
666
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value.</dd></dl>
667
<dl class="note"><dt><b>Note:</b></dt><dd>This function is more akin to ftruncate than truncate, and truncate calls would have to open the file before calling this, sadly. </dd></dl>
671
<a class="anchor" id="a034289b2f220b0f56f2155537e59d2ab"></a><!-- doxytag: member="afc.h::afc_file_write" ref="a034289b2f220b0f56f2155537e59d2ab" args="(afc_client_t client, uint64_t handle, const char *data, uint32_t length, uint32_t *bytes_written)" -->
672
<div class="memitem">
673
<div class="memproto">
674
<table class="memname">
676
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_file_write </td>
678
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
679
<td class="paramname"> <em>client</em>, </td>
682
<td class="paramkey"></td>
684
<td class="paramtype">uint64_t </td>
685
<td class="paramname"> <em>handle</em>, </td>
688
<td class="paramkey"></td>
690
<td class="paramtype">const char * </td>
691
<td class="paramname"> <em>data</em>, </td>
694
<td class="paramkey"></td>
696
<td class="paramtype">uint32_t </td>
697
<td class="paramname"> <em>length</em>, </td>
700
<td class="paramkey"></td>
702
<td class="paramtype">uint32_t * </td>
703
<td class="paramname"> <em>bytes_written</em></td><td> </td>
708
<td></td><td></td><td></td>
714
<p>Writes a given number of bytes to a file. </p>
715
<dl><dt><b>Parameters:</b></dt><dd>
716
<table border="0" cellspacing="2" cellpadding="0">
717
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to write to the file. </td></tr>
718
<tr><td valign="top"></td><td valign="top"><em>handle</em> </td><td>File handle of previously opened file. </td></tr>
719
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>The data to write to the file. </td></tr>
720
<tr><td valign="top"></td><td valign="top"><em>length</em> </td><td>How much data to write. </td></tr>
721
<tr><td valign="top"></td><td valign="top"><em>bytes_written</em> </td><td>The number of bytes actually written to the file.</td></tr>
725
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
729
<a class="anchor" id="ab4b5ee19121c0283364d3cee5b72cc15"></a><!-- doxytag: member="afc.h::afc_get_device_info" ref="ab4b5ee19121c0283364d3cee5b72cc15" args="(afc_client_t client, char ***infos)" -->
730
<div class="memitem">
731
<div class="memproto">
732
<table class="memname">
734
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_get_device_info </td>
736
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
737
<td class="paramname"> <em>client</em>, </td>
740
<td class="paramkey"></td>
742
<td class="paramtype">char *** </td>
743
<td class="paramname"> <em>infos</em></td><td> </td>
748
<td></td><td></td><td></td>
754
<p>Get device info for a client connection to phone. </p>
755
<p>The device information returned is the device model as well as the free space, the total capacity and blocksize on the accessed disk partition.</p>
756
<dl><dt><b>Parameters:</b></dt><dd>
757
<table border="0" cellspacing="2" cellpadding="0">
758
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to get device info for. </td></tr>
759
<tr><td valign="top"></td><td valign="top"><em>infos</em> </td><td>A char ** list of parameters as given by AFC or NULL if there was an error.</td></tr>
763
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
767
<a class="anchor" id="a6b5608bfa08dc160ef68e49c4da167d9"></a><!-- doxytag: member="afc.h::afc_get_device_info_key" ref="a6b5608bfa08dc160ef68e49c4da167d9" args="(afc_client_t client, const char *key, char **value)" -->
768
<div class="memitem">
769
<div class="memproto">
770
<table class="memname">
772
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_get_device_info_key </td>
774
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
775
<td class="paramname"> <em>client</em>, </td>
778
<td class="paramkey"></td>
780
<td class="paramtype">const char * </td>
781
<td class="paramname"> <em>key</em>, </td>
784
<td class="paramkey"></td>
786
<td class="paramtype">char ** </td>
787
<td class="paramname"> <em>value</em></td><td> </td>
792
<td></td><td></td><td></td>
798
<p>Get a specific key of the device info list for a client connection. </p>
799
<p>Known key values are: Model, FSTotalBytes, FSFreeBytes and FSBlockSize. This is a helper function for <a class="el" href="include_2libimobiledevice_2afc_8h.html#ab4b5ee19121c0283364d3cee5b72cc15" title="Get device info for a client connection to phone.">afc_get_device_info()</a>.</p>
800
<dl><dt><b>Parameters:</b></dt><dd>
801
<table border="0" cellspacing="2" cellpadding="0">
802
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to get device info for. </td></tr>
803
<tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>The key to get the value of. </td></tr>
804
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>The value for the key if successful or NULL otherwise.</td></tr>
808
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
812
<a class="anchor" id="a0b7a62789a2208576ebc1c7794f30f13"></a><!-- doxytag: member="afc.h::afc_get_file_info" ref="a0b7a62789a2208576ebc1c7794f30f13" args="(afc_client_t client, const char *filename, char ***infolist)" -->
813
<div class="memitem">
814
<div class="memproto">
815
<table class="memname">
817
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_get_file_info </td>
819
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
820
<td class="paramname"> <em>client</em>, </td>
823
<td class="paramkey"></td>
825
<td class="paramtype">const char * </td>
826
<td class="paramname"> <em>path</em>, </td>
829
<td class="paramkey"></td>
831
<td class="paramtype">char *** </td>
832
<td class="paramname"> <em>infolist</em></td><td> </td>
837
<td></td><td></td><td></td>
843
<p>Gets information about a specific file. </p>
844
<dl><dt><b>Parameters:</b></dt><dd>
845
<table border="0" cellspacing="2" cellpadding="0">
846
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to get the information of the file. </td></tr>
847
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>The fully-qualified path to the file. </td></tr>
848
<tr><td valign="top"></td><td valign="top"><em>infolist</em> </td><td>Pointer to a buffer that will be filled with a NULL-terminated list of strings with the file information. Set to NULL before calling this function.</td></tr>
852
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
856
<a class="anchor" id="a57135ac755a1312271d7218432238008"></a><!-- doxytag: member="afc.h::afc_make_directory" ref="a57135ac755a1312271d7218432238008" args="(afc_client_t client, const char *dir)" -->
857
<div class="memitem">
858
<div class="memproto">
859
<table class="memname">
861
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_make_directory </td>
863
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
864
<td class="paramname"> <em>client</em>, </td>
867
<td class="paramkey"></td>
869
<td class="paramtype">const char * </td>
870
<td class="paramname"> <em>dir</em></td><td> </td>
875
<td></td><td></td><td></td>
881
<p>Creates a directory on the phone. </p>
882
<dl><dt><b>Parameters:</b></dt><dd>
883
<table border="0" cellspacing="2" cellpadding="0">
884
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to make a directory. </td></tr>
885
<tr><td valign="top"></td><td valign="top"><em>dir</em> </td><td>The directory's path. (must be a fully-qualified path, I assume all other mkdir restrictions apply as well)</td></tr>
889
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
893
<a class="anchor" id="ab5ade933b44d1f913df91d1065faa33a"></a><!-- doxytag: member="afc.h::afc_make_link" ref="ab5ade933b44d1f913df91d1065faa33a" args="(afc_client_t client, afc_link_type_t linktype, const char *target, const char *linkname)" -->
894
<div class="memitem">
895
<div class="memproto">
896
<table class="memname">
898
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_make_link </td>
900
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
901
<td class="paramname"> <em>client</em>, </td>
904
<td class="paramkey"></td>
906
<td class="paramtype"><a class="el" href="include_2libimobiledevice_2afc_8h.html#a1885d5e53edde8732633621768db5908">afc_link_type_t</a> </td>
907
<td class="paramname"> <em>linktype</em>, </td>
910
<td class="paramkey"></td>
912
<td class="paramtype">const char * </td>
913
<td class="paramname"> <em>target</em>, </td>
916
<td class="paramkey"></td>
918
<td class="paramtype">const char * </td>
919
<td class="paramname"> <em>linkname</em></td><td> </td>
924
<td></td><td></td><td></td>
930
<p>Creates a hard link or symbolic link on the device. </p>
931
<dl><dt><b>Parameters:</b></dt><dd>
932
<table border="0" cellspacing="2" cellpadding="0">
933
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use for making a link </td></tr>
934
<tr><td valign="top"></td><td valign="top"><em>linktype</em> </td><td>1 = hard link, 2 = symlink </td></tr>
935
<tr><td valign="top"></td><td valign="top"><em>target</em> </td><td>The file to be linked. </td></tr>
936
<tr><td valign="top"></td><td valign="top"><em>linkname</em> </td><td>The name of link.</td></tr>
940
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
944
<a class="anchor" id="aa5dcaf88c17b087b5140fe9a9ada21b0"></a><!-- doxytag: member="afc.h::afc_read_directory" ref="aa5dcaf88c17b087b5140fe9a9ada21b0" args="(afc_client_t client, const char *dir, char ***list)" -->
945
<div class="memitem">
946
<div class="memproto">
947
<table class="memname">
949
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_read_directory </td>
951
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
952
<td class="paramname"> <em>client</em>, </td>
955
<td class="paramkey"></td>
957
<td class="paramtype">const char * </td>
958
<td class="paramname"> <em>dir</em>, </td>
961
<td class="paramkey"></td>
963
<td class="paramtype">char *** </td>
964
<td class="paramname"> <em>list</em></td><td> </td>
969
<td></td><td></td><td></td>
975
<p>Gets a directory listing of the directory requested. </p>
976
<dl><dt><b>Parameters:</b></dt><dd>
977
<table border="0" cellspacing="2" cellpadding="0">
978
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to get a directory listing from. </td></tr>
979
<tr><td valign="top"></td><td valign="top"><em>dir</em> </td><td>The directory to list. (must be a fully-qualified path) </td></tr>
980
<tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>A char list of files in that directory, terminated by an empty string or NULL if there was an error.</td></tr>
984
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
988
<a class="anchor" id="aefd69b3b2168543c06833f9507858b63"></a><!-- doxytag: member="afc.h::afc_remove_path" ref="aefd69b3b2168543c06833f9507858b63" args="(afc_client_t client, const char *path)" -->
989
<div class="memitem">
990
<div class="memproto">
991
<table class="memname">
993
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_remove_path </td>
995
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
996
<td class="paramname"> <em>client</em>, </td>
999
<td class="paramkey"></td>
1001
<td class="paramtype">const char * </td>
1002
<td class="paramname"> <em>path</em></td><td> </td>
1007
<td></td><td></td><td></td>
1011
<div class="memdoc">
1013
<p>Deletes a file or directory. </p>
1014
<dl><dt><b>Parameters:</b></dt><dd>
1015
<table border="0" cellspacing="2" cellpadding="0">
1016
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use. </td></tr>
1017
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>The path to delete. (must be a fully-qualified path)</td></tr>
1021
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
1025
<a class="anchor" id="a0c783fb34679a9be39e96aeac2f38801"></a><!-- doxytag: member="afc.h::afc_rename_path" ref="a0c783fb34679a9be39e96aeac2f38801" args="(afc_client_t client, const char *from, const char *to)" -->
1026
<div class="memitem">
1027
<div class="memproto">
1028
<table class="memname">
1030
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_rename_path </td>
1032
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
1033
<td class="paramname"> <em>client</em>, </td>
1036
<td class="paramkey"></td>
1038
<td class="paramtype">const char * </td>
1039
<td class="paramname"> <em>from</em>, </td>
1042
<td class="paramkey"></td>
1044
<td class="paramtype">const char * </td>
1045
<td class="paramname"> <em>to</em></td><td> </td>
1050
<td></td><td></td><td></td>
1054
<div class="memdoc">
1056
<p>Renames a file or directory on the phone. </p>
1057
<dl><dt><b>Parameters:</b></dt><dd>
1058
<table border="0" cellspacing="2" cellpadding="0">
1059
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to have rename. </td></tr>
1060
<tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>The name to rename from. (must be a fully-qualified path) </td></tr>
1061
<tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>The new name. (must also be a fully-qualified path)</td></tr>
1065
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
1069
<a class="anchor" id="a7783580ec92f8374e1e0836ac006cf07"></a><!-- doxytag: member="afc.h::afc_set_file_time" ref="a7783580ec92f8374e1e0836ac006cf07" args="(afc_client_t client, const char *path, uint64_t mtime)" -->
1070
<div class="memitem">
1071
<div class="memproto">
1072
<table class="memname">
1074
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_set_file_time </td>
1076
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
1077
<td class="paramname"> <em>client</em>, </td>
1080
<td class="paramkey"></td>
1082
<td class="paramtype">const char * </td>
1083
<td class="paramname"> <em>path</em>, </td>
1086
<td class="paramkey"></td>
1088
<td class="paramtype">uint64_t </td>
1089
<td class="paramname"> <em>mtime</em></td><td> </td>
1094
<td></td><td></td><td></td>
1098
<div class="memdoc">
1100
<p>Sets the modification time of a file on the phone. </p>
1101
<dl><dt><b>Parameters:</b></dt><dd>
1102
<table border="0" cellspacing="2" cellpadding="0">
1103
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to set the file size. </td></tr>
1104
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>Path of the file for which the modification time should be set. </td></tr>
1105
<tr><td valign="top"></td><td valign="top"><em>mtime</em> </td><td>The modification time to set in nanoseconds since epoch.</td></tr>
1109
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
1113
<a class="anchor" id="a8b2a2e73c45e378379fe3e7daddd717b"></a><!-- doxytag: member="afc.h::afc_truncate" ref="a8b2a2e73c45e378379fe3e7daddd717b" args="(afc_client_t client, const char *path, uint64_t newsize)" -->
1114
<div class="memitem">
1115
<div class="memproto">
1116
<table class="memname">
1118
<td class="memname"><a class="el" href="include_2libimobiledevice_2afc_8h.html#afa46b7e1ac472a5589d85d6a6a7104fb">afc_error_t</a> afc_truncate </td>
1120
<td class="paramtype"><a class="el" href="structafc__client__private.html">afc_client_t</a> </td>
1121
<td class="paramname"> <em>client</em>, </td>
1124
<td class="paramkey"></td>
1126
<td class="paramtype">const char * </td>
1127
<td class="paramname"> <em>path</em>, </td>
1130
<td class="paramkey"></td>
1132
<td class="paramtype">uint64_t </td>
1133
<td class="paramname"> <em>newsize</em></td><td> </td>
1138
<td></td><td></td><td></td>
1142
<div class="memdoc">
1144
<p>Sets the size of a file on the phone without prior opening it. </p>
1145
<dl><dt><b>Parameters:</b></dt><dd>
1146
<table border="0" cellspacing="2" cellpadding="0">
1147
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>The client to use to set the file size. </td></tr>
1148
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>The path of the file to be truncated. </td></tr>
1149
<tr><td valign="top"></td><td valign="top"><em>newsize</em> </td><td>The size to set the file to.</td></tr>
1153
<dl class="return"><dt><b>Returns:</b></dt><dd>AFC_E_SUCCESS on success or an AFC_E_* error value. </dd></dl>
1158
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Mar 21 09:43:43 2010 for libimobiledevice by
1159
<a href="http://www.doxygen.org/index.html">
1160
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>