OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [Common/] [FileSystem/] [FatFs-0.7e/] [doc/] [ja/] [open.html] - Blame information for rev 606

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 606 jeremybenn
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
<html lang="ja">
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
5
<meta http-equiv="Content-Style-Type" content="text/css">
6
<link rel="up" title="FatFs" href="../00index_j.html">
7
<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
8
<title>FatFs - f_open</title>
9
</head>
10
 
11
<body>
12
 
13
<div class="para">
14
<h2>f_open</h2>
15
<p>ファイルをオープンまたは作成します。</p>
16
<pre>
17
FRESULT f_open (
18
  FIL* <em>FileObject</em>,       /* 空のファイル・オブジェクト構造体へのポインタ */
19
  const XCHAR* <em>FileName</em>, /* ファイルのフルパス名へのポインタ */
20
  BYTE <em>ModeFlags</em>         /* モードフラグ */
21
);
22
</pre>
23
</div>
24
 
25
<div class="para">
26
<h4>引数</h4>
27
<dl class="par">
28
<dt>FileObject</dt>
29
<dd>新しく作成するファイル・オブジェクト構造体へのポインタを指定します。以降、そのファイルを閉じるまでこのファイル・オブジェクトを使用してファイル操作をします。</dd>
30
<dt>FileName</dt>
31
<dd>開く(または作成する)ファイルの <a href="filename.html">ファイル名</a>が入った<tt>'\0'</tt>で終わる文字列へのポインタを指定します。</dd>
32
<dt>ModeFlags</dt>
33
<dd>ファイルのアクセス方法やオープン方法を決めるフラグです。このパラメータには次の組み合わせを指定します。<br>
34
<table class="lst">
35
<tr><th>値</th><th>意味</th></tr>
36
<tr><td>FA_READ</td><td>読み出しモードで開きます。読み書きする場合は<tt>FA_WRITE</tt>と共に指定します。</td></tr>
37
<tr><td>FA_WRITE</td><td>書き込みモードで開きます。読み書きする場合は<tt>FA_READ</tt>と共に指定します。</td></tr>
38
<tr><td>FA_OPEN_EXISTING</td><td>既存のファイルを開きます。ファイルが無いときはエラーになります。(デフォルト)</td></tr>
39
<tr><td>FA_OPEN_ALWAYS</td><td>既存のファイルを開きます。ファイルが無いときはファイルを作成します。</td></tr>
40
<tr><td>FA_CREATE_NEW</td><td>ファイルを作成します。同名のファイルがある場合は、エラーになります。</td></tr>
41
<tr><td>FA_CREATE_ALWAYS</td><td>ファイルを作成します。同名のファイルがある場合は、サイズを0にしてから開きます。</td></tr>
42
</table>
43
</dd>
44
</dl>
45
</div>
46
 
47
 
48
<div class="para">
49
<h4>戻り値</h4>
50
<dl class="ret">
51
<dt>FR_OK (0)</dt>
52
<dd>正常終了。以降、<tt>FileObject</tt>構造体を使ってこのファイルを操作できます。</dd>
53
<dt>FR_NO_FILE</dt>
54
<dd>ファイルが見つからない。</dd>
55
<dt>FR_NO_PATH</dt>
56
<dd>パスが見つからない。</dd>
57
<dt>FR_INVALID_NAME</dt>
58
<dd>ファイル名が不正。</dd>
59
<dt>FR_INVALID_DRIVE</dt>
60
<dd>ドライブ番号が不正。</dd>
61
<dt>FR_EXIST</dt>
62
<dd>同名のファイルが既にある。</dd>
63
<dt>FR_DENIED</dt>
64
<dd>アクセスが拒否された。リード・オンリー・ファイルの書き込みモード・オープン、同名のディレクトリまたはリード・オンリー・ファイルがある状態でのファイル作成、ディスクまたはディレクトリ・テーブルが満杯でファイルを作成できないなど。</dd>
65
<dt>FR_NOT_READY</dt>
66
<dd>メディアがセットされていないなど、物理ドライブが動作不能状態。</dd>
67
<dt>FR_WRITE_PROTECTED</dt>
68
<dd>メディアが書き込み禁止状態で書き込み系オープンをした。</dd>
69
<dt>FR_DISK_ERR</dt>
70
<dd>ディスク・エラーによる失敗。</dd>
71
<dt>FR_INT_ERR</dt>
72
<dd>不正なFAT構造または内部エラーによる失敗。</dd>
73
<dt>FR_NOT_ENABLED</dt>
74
<dd>その論理ドライブにワーク・エリアが割り当てられていない。</dd>
75
<dt>FR_NO_FILESYSTEM</dt>
76
<dd>ディスク上に有効なFATボリュームが見つからない。</dd>
77
</dl>
78
</div>
79
 
80
 
81
<div class="para">
82
<h4>解説</h4>
83
<p>既存のファイルを開いたり、新しいファイルを作成します。関数が成功するとファイル・オブジェクトが作成され、以降そのファイルに対するアクセスに使用します。ファイルを閉じるときは、<a href="close.html">f_close()</a>を使用します。何らかの変更が行われたファイルがその後正しく閉じられなかった場合、そのファイルが破損する場合があります。</p>
84
<p>ファイル・アクセスを開始する前に、<a href="mount.html">f_mount()</a>を使ってそれぞれの論理ドライブにワーク・エリア(ファイル・システム・オブジェクト)を与える必要があります。この初期化の後、その論理ドライブに対して全てのファイル関数が使えるようになります。</p>
85
</div>
86
 
87
 
88
<div class="para">
89
<h4>対応情報</h4>
90
<p>全ての構成で使用可能です。<tt>_FS_READONLY == 1</tt>のときは、<tt>FA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW, FA_OPEN_ALWAYS</tt>の各フラグはサポートされません。</p>
91
</div>
92
 
93
 
94
<div class="para">
95
<h4>使用例(ファイル・コピー)</h4>
96
<pre>
97
void main (void)
98
{
99
    FATFS fs[2];         /* 論理ドライブのワーク・エリア(ファイル・システム・オブジェクト) */
100
    FIL fsrc, fdst;      /* ファイル・オブジェクト */
101
    BYTE buffer[4096];   /* file copy buffer */
102
    FRESULT res;         /* FatFs function common result code */
103
    UINT br, bw;         /* File R/W count */
104
 
105
    /* ドライブ0,1にワーク・エリアを与える */
106
    f_mount(0, &amp;fs[0]);
107
    f_mount(1, &amp;fs[1]);
108
 
109
    /* ドライブ1のソース・ファイルを開く */
110
    res = f_open(&amp;fsrc, "1:srcfile.dat", FA_OPEN_EXISTING | FA_READ);
111
    if (res) die(res);
112
 
113
    /* ドライブ0にデスティネーション・ファイルを作成する */
114
    res = f_open(&amp;fdst, "0:dstfile.dat", FA_CREATE_ALWAYS | FA_WRITE);
115
    if (res) die(res);
116
 
117
    /* ソースからデスティネーションにコピーする */
118
    for (;;) {
119
        res = f_read(&amp;fsrc, buffer, sizeof(buffer), &amp;br);
120
        if (res || br == 0) break;   /* エラーかファイル終端 */
121
        res = f_write(&amp;fdst, buffer, br, &amp;bw);
122
        if (res || bw &lt; br) break;   /* エラーかディスク満杯 */
123
    }
124
 
125
    /* 全てのファイルを閉じる */
126
    f_close(&amp;fsrc);
127
    f_close(&amp;fdst);
128
 
129
    /* ワーク・エリアを開放する */
130
    f_mount(0, NULL);
131
    f_mount(1, NULL);
132
}
133
</pre>
134
</div>
135
 
136
 
137
<div class="para">
138
<h4>参照</h4>
139
<p><tt><a href="read.html">f_read</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a>, <a href="sfatfs.html">FATFS</a></tt></p>
140
</div>
141
 
142
<p class="foot"><a href="../00index_j.html">戻る</a></p>
143
</body>
144
</html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.