• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# File System
2
3The OpenHarmony LiteOS-M kernel supports File Allocation Table file system \(FATFS\) and LittleFS file systems. Like the OpenHarmony LiteOS-A kernel, the OpenHarmony LiteOS-M kernel provides POSIX over the virtual file system \(VFS\) to ensure interface consistency. However, the VFS of the LiteOS-M kernel is light due to insufficient resources and does not provide advanced functions \(such as pagecache\). Therefore, the VFS of the LiteOS-M kernel implements only API standardization and adaptation. The file systems handle specific transactions. The following table lists the functions supported by the file systems.
4
5**Table 1** Function list
6
7<a name="table147491853163018"></a>
8<table><thead align="left"><tr id="row10807205323013"><th class="cellrowborder" valign="top" width="12.738726127387261%" id="mcps1.2.6.1.1"><p id="p980714539304"><a name="p980714539304"></a><a name="p980714539304"></a>Function</p>
9</th>
10<th class="cellrowborder" valign="top" width="12.418758124187582%" id="mcps1.2.6.1.2"><p id="p1780715533305"><a name="p1780715533305"></a><a name="p1780715533305"></a>API</p>
11</th>
12<th class="cellrowborder" valign="top" width="44.605539446055396%" id="mcps1.2.6.1.3"><p id="p18807185316301"><a name="p18807185316301"></a><a name="p18807185316301"></a>Description</p>
13</th>
14<th class="cellrowborder" valign="top" width="14.87851214878512%" id="mcps1.2.6.1.4"><p id="p12498884271"><a name="p12498884271"></a><a name="p12498884271"></a>FATFS</p>
15</th>
16<th class="cellrowborder" valign="top" width="15.358464153584642%" id="mcps1.2.6.1.5"><p id="p348021419272"><a name="p348021419272"></a><a name="p348021419272"></a>LITTLEFS</p>
17</th>
18</tr>
19</thead>
20<tbody><tr id="row15807135373016"><td class="cellrowborder" rowspan="10" valign="top" width="12.738726127387261%" headers="mcps1.2.6.1.1 "><p id="p13807185311309"><a name="p13807185311309"></a><a name="p13807185311309"></a>File management</p>
21</td>
22<td class="cellrowborder" valign="top" width="12.418758124187582%" headers="mcps1.2.6.1.2 "><p id="p1844913783415"><a name="p1844913783415"></a><a name="p1844913783415"></a>open</p>
23</td>
24<td class="cellrowborder" valign="top" width="44.605539446055396%" headers="mcps1.2.6.1.3 "><p id="p1807145320308"><a name="p1807145320308"></a><a name="p1807145320308"></a>Opens a file.</p>
25</td>
26<td class="cellrowborder" valign="top" width="14.87851214878512%" headers="mcps1.2.6.1.4 "><p id="p349815892714"><a name="p349815892714"></a><a name="p349815892714"></a>Supported</p>
27</td>
28<td class="cellrowborder" valign="top" width="15.358464153584642%" headers="mcps1.2.6.1.5 "><p id="p114805143273"><a name="p114805143273"></a><a name="p114805143273"></a>Supported</p>
29</td>
30</tr>
31<tr id="row3807145310300"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p14450133710344"><a name="p14450133710344"></a><a name="p14450133710344"></a>close</p>
32</td>
33<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p61801940174715"><a name="p61801940174715"></a><a name="p61801940174715"></a>Closes a file.</p>
34</td>
35<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p124985842719"><a name="p124985842719"></a><a name="p124985842719"></a>Supported</p>
36</td>
37<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p8247202914439"><a name="p8247202914439"></a><a name="p8247202914439"></a>Supported</p>
38</td>
39</tr>
40<tr id="row17983567378"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p1132194016370"><a name="p1132194016370"></a><a name="p1132194016370"></a>read</p>
41</td>
42<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p83859178485"><a name="p83859178485"></a><a name="p83859178485"></a>Reads a file.</p>
43</td>
44<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p124983832712"><a name="p124983832712"></a><a name="p124983832712"></a>Supported</p>
45</td>
46<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p146813284314"><a name="p146813284314"></a><a name="p146813284314"></a>Supported</p>
47</td>
48</tr>
49<tr id="row2997112220379"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p1032940123712"><a name="p1032940123712"></a><a name="p1032940123712"></a>write</p>
50</td>
51<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p176091241485"><a name="p176091241485"></a><a name="p176091241485"></a>Writes data to a file.</p>
52</td>
53<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p194988822715"><a name="p194988822715"></a><a name="p194988822715"></a>Supported</p>
54</td>
55<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p1148041415271"><a name="p1148041415271"></a><a name="p1148041415271"></a>Supported</p>
56</td>
57</tr>
58<tr id="row882312633713"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p1433144063711"><a name="p1433144063711"></a><a name="p1433144063711"></a>lseek</p>
59</td>
60<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p138512964919"><a name="p138512964919"></a><a name="p138512964919"></a>Sets the file offset.</p>
61</td>
62<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p849848182715"><a name="p849848182715"></a><a name="p849848182715"></a>Supported</p>
63</td>
64<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p114801914122716"><a name="p114801914122716"></a><a name="p114801914122716"></a>Supported</p>
65</td>
66</tr>
67<tr id="row1255192920378"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p12211034184314"><a name="p12211034184314"></a><a name="p12211034184314"></a>unlink</p>
68</td>
69<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p625522973712"><a name="p625522973712"></a><a name="p625522973712"></a>Deletes a file.</p>
70</td>
71<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p194989811278"><a name="p194989811278"></a><a name="p194989811278"></a>Supported</p>
72</td>
73<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p1480141419274"><a name="p1480141419274"></a><a name="p1480141419274"></a>Supported</p>
74</td>
75</tr>
76<tr id="row1748513315379"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p6221123412439"><a name="p6221123412439"></a><a name="p6221123412439"></a>rename</p>
77</td>
78<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p14485193113376"><a name="p14485193113376"></a><a name="p14485193113376"></a>Renames a file. </p>
79</td>
80<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p0498178152719"><a name="p0498178152719"></a><a name="p0498178152719"></a>Supported</p>
81</td>
82<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p5480181410274"><a name="p5480181410274"></a><a name="p5480181410274"></a>Supported</p>
83</td>
84</tr>
85<tr id="row14711133314377"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p1622183424312"><a name="p1622183424312"></a><a name="p1622183424312"></a>fstat</p>
86</td>
87<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p47118331374"><a name="p47118331374"></a><a name="p47118331374"></a>Obtains file information based on the file handle.</p>
88</td>
89<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p2049815815270"><a name="p2049815815270"></a><a name="p2049815815270"></a>Supported</p>
90</td>
91<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p114800145275"><a name="p114800145275"></a><a name="p114800145275"></a>Supported</p>
92</td>
93</tr>
94<tr id="row275965713434"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p0760257194311"><a name="p0760257194311"></a><a name="p0760257194311"></a>stat</p>
95</td>
96<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p0760185744315"><a name="p0760185744315"></a><a name="p0760185744315"></a>Obtains file information based on the file path name.</p>
97</td>
98<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p54980817274"><a name="p54980817274"></a><a name="p54980817274"></a>Supported</p>
99</td>
100<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p17480121418275"><a name="p17480121418275"></a><a name="p17480121418275"></a>Supported</p>
101</td>
102</tr>
103<tr id="row1338825534315"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p1138911557439"><a name="p1138911557439"></a><a name="p1138911557439"></a>fsync</p>
104</td>
105<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p11857231165014"><a name="p11857231165014"></a><a name="p11857231165014"></a>Saves file updates to a storage device.</p>
106</td>
107<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p6498178142713"><a name="p6498178142713"></a><a name="p6498178142713"></a>Supported</p>
108</td>
109<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p94801714142720"><a name="p94801714142720"></a><a name="p94801714142720"></a>Supported</p>
110</td>
111</tr>
112<tr id="row14808175393014"><td class="cellrowborder" rowspan="5" valign="top" width="12.738726127387261%" headers="mcps1.2.6.1.1 "><p id="p19808155313303"><a name="p19808155313303"></a><a name="p19808155313303"></a>Directory management</p>
113</td>
114<td class="cellrowborder" valign="top" width="12.418758124187582%" headers="mcps1.2.6.1.2 "><p id="p19562203615452"><a name="p19562203615452"></a><a name="p19562203615452"></a>mkdir</p>
115</td>
116<td class="cellrowborder" valign="top" width="44.605539446055396%" headers="mcps1.2.6.1.3 "><p id="p1977064334716"><a name="p1977064334716"></a><a name="p1977064334716"></a>Creates a directory.</p>
117</td>
118<td class="cellrowborder" valign="top" width="14.87851214878512%" headers="mcps1.2.6.1.4 "><p id="p74982812711"><a name="p74982812711"></a><a name="p74982812711"></a>Supported</p>
119</td>
120<td class="cellrowborder" valign="top" width="15.358464153584642%" headers="mcps1.2.6.1.5 "><p id="p8480414162713"><a name="p8480414162713"></a><a name="p8480414162713"></a>Supported</p>
121</td>
122</tr>
123<tr id="row179843414459"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p10562113616452"><a name="p10562113616452"></a><a name="p10562113616452"></a>opendir</p>
124</td>
125<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p179816348457"><a name="p179816348457"></a><a name="p179816348457"></a>Opens a directory.</p>
126</td>
127<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p149813816279"><a name="p149813816279"></a><a name="p149813816279"></a>Supported</p>
128</td>
129<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p17480131410276"><a name="p17480131410276"></a><a name="p17480131410276"></a>Supported</p>
130</td>
131</tr>
132<tr id="row6816331134517"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p155621836104517"><a name="p155621836104517"></a><a name="p155621836104517"></a>readdir</p>
133</td>
134<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p198171131194514"><a name="p198171131194514"></a><a name="p198171131194514"></a>Reads the content of a directory.</p>
135</td>
136<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p174981984274"><a name="p174981984274"></a><a name="p174981984274"></a>Supported</p>
137</td>
138<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p1248061492717"><a name="p1248061492717"></a><a name="p1248061492717"></a>Supported</p>
139</td>
140</tr>
141<tr id="row1480855311301"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p1556233618452"><a name="p1556233618452"></a><a name="p1556233618452"></a>closedir</p>
142</td>
143<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p128021415175112"><a name="p128021415175112"></a><a name="p128021415175112"></a>Closes a directory.</p>
144</td>
145<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p194982086279"><a name="p194982086279"></a><a name="p194982086279"></a>Supported</p>
146</td>
147<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p6480214152710"><a name="p6480214152710"></a><a name="p6480214152710"></a>Supported</p>
148</td>
149</tr>
150<tr id="row10808353153012"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p8563336154511"><a name="p8563336154511"></a><a name="p8563336154511"></a>rmdir</p>
151</td>
152<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p5786174617471"><a name="p5786174617471"></a><a name="p5786174617471"></a>Deletes a directory.</p>
153</td>
154<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p17498148142710"><a name="p17498148142710"></a><a name="p17498148142710"></a>Supported</p>
155</td>
156<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p848021432713"><a name="p848021432713"></a><a name="p848021432713"></a>Supported</p>
157</td>
158</tr>
159<tr id="row680812535306"><td class="cellrowborder" rowspan="4" valign="top" width="12.738726127387261%" headers="mcps1.2.6.1.1 "><p id="p13808125314307"><a name="p13808125314307"></a><a name="p13808125314307"></a>Partition management</p>
160</td>
161<td class="cellrowborder" valign="top" width="12.418758124187582%" headers="mcps1.2.6.1.2 "><p id="p1244416484610"><a name="p1244416484610"></a><a name="p1244416484610"></a>mount</p>
162</td>
163<td class="cellrowborder" valign="top" width="44.605539446055396%" headers="mcps1.2.6.1.3 "><p id="p1312794814473"><a name="p1312794814473"></a><a name="p1312794814473"></a>Mounts a partition.</p>
164</td>
165<td class="cellrowborder" valign="top" width="14.87851214878512%" headers="mcps1.2.6.1.4 "><p id="p1849878112714"><a name="p1849878112714"></a><a name="p1849878112714"></a>Supported</p>
166</td>
167<td class="cellrowborder" valign="top" width="15.358464153584642%" headers="mcps1.2.6.1.5 "><p id="p15480111452717"><a name="p15480111452717"></a><a name="p15480111452717"></a>Supported</p>
168</td>
169</tr>
170<tr id="row1275526194617"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p77561265464"><a name="p77561265464"></a><a name="p77561265464"></a>umount</p>
171</td>
172<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p1275610616466"><a name="p1275610616466"></a><a name="p1275610616466"></a>Unmounts a partition.</p>
173</td>
174<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p649819872719"><a name="p649819872719"></a><a name="p649819872719"></a>Supported</p>
175</td>
176<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p3480714132712"><a name="p3480714132712"></a><a name="p3480714132712"></a>Supported</p>
177</td>
178</tr>
179<tr id="row11601915134614"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p121601615164614"><a name="p121601615164614"></a><a name="p121601615164614"></a>umount2</p>
180</td>
181<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p171607155464"><a name="p171607155464"></a><a name="p171607155464"></a>Forcibly unmounts a partition using the <strong id="b172144710378"><a name="b172144710378"></a><a name="b172144710378"></a>MNT_FORCE</strong> parameter.</p>
182</td>
183<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p5498178112713"><a name="p5498178112713"></a><a name="p5498178112713"></a>Supported</p>
184</td>
185<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p0480141442714"><a name="p0480141442714"></a><a name="p0480141442714"></a>Not supported</p>
186</td>
187</tr>
188<tr id="row713261764616"><td class="cellrowborder" valign="top" headers="mcps1.2.6.1.1 "><p id="p1133171734610"><a name="p1133171734610"></a><a name="p1133171734610"></a>statfs</p>
189</td>
190<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.2 "><p id="p1813311174468"><a name="p1813311174468"></a><a name="p1813311174468"></a>Obtains partition information.</p>
191</td>
192<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.3 "><p id="p349917817278"><a name="p349917817278"></a><a name="p349917817278"></a>Supported</p>
193</td>
194<td class="cellrowborder" valign="top" headers="mcps1.2.6.1.4 "><p id="p548112141279"><a name="p548112141279"></a><a name="p548112141279"></a>Not supported</p>
195</td>
196</tr>
197</tbody>
198</table>
199
200-   **[FAT](kernel-mini-extend-file-fat.md)**
201
202-   **[LittleFS](kernel-mini-extend-file-lit.md)**
203
204
205