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