]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - fatfs/doc/ja/forward.html
Import fatfs R0.12b
[z180-stamp.git] / fatfs / doc / ja / forward.html
index ffb2e60a351b1bbfb56312bb459599f9401f5890..34f4f4833b645d39eac193edf2ab886eb6be7be7 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
 <html lang="ja">\r
 <head>\r
-<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
 <meta http-equiv="Content-Style-Type" content="text/css">\r
 <link rel="up" title="FatFs" href="../00index_j.html">\r
 <link rel="alternate" hreflang="en" title="English" href="../en/forward.html">\r
 \r
 <div class="para func">\r
 <h2>f_forward</h2>\r
-<p>\83t\83@\83C\83\8b\82©\82ç\83f\81[\83^\82ð\93Ç\82Ý\8fo\82µ\81A\91\97\90M\83X\83g\83\8a\81[\83\80\82É\92¼\90Ú\93]\91\97\82µ\82Ü\82·\81B</p>\r
+<p>ファイルからデータを読み出し、送信ストリームに直接転送します。</p>\r
 <pre>\r
 FRESULT f_forward (\r
-  FIL* <span class="arg">fp</span>,                         <span class="c">/* [IN] \83t\83@\83C\83\8b\81E\83I\83u\83W\83F\83N\83g\8d\\91¢\91Ì */</span>\r
-  UINT (*<span class="arg">func</span>)(const BYTE*,UINT),  <span class="c">/* [IN] \83f\81[\83^\93]\91\97\8aÖ\90\94 */</span>\r
-  UINT <span class="arg">btf</span>,                        <span class="c">/* [IN] \93]\91\97\82·\82é\83o\83C\83g\90\94 */</span>\r
-  UINT* <span class="arg">bf</span>                         <span class="c">/* [OUT] \93]\91\97\82³\82ê\82½\83o\83C\83g\90\94 */</span>\r
+  FIL* <span class="arg">fp</span>,                         <span class="c">/* [IN] ファイル オブジェクト構造体 */</span>\r
+  UINT (*<span class="arg">func</span>)(const BYTE*,UINT),  <span class="c">/* [IN] データ転送関数 */</span>\r
+  UINT <span class="arg">btf</span>,                        <span class="c">/* [IN] 転送するバイト数 */</span>\r
+  UINT* <span class="arg">bf</span>                         <span class="c">/* [OUT] 転送されたバイト数 */</span>\r
 );\r
 </pre>\r
 </div>\r
 \r
 <div class="para arg">\r
-<h4>\88ø\90\94</h4>\r
+<h4>引数</h4>\r
 <dl class="par">\r
 <dt>fp</dt>\r
-<dd>\83t\83@\83C\83\8b\81E\83I\83u\83W\83F\83N\83g\8d\\91¢\91Ì\82Ö\82Ì\83|\83C\83\93\83^\82ð\8ew\92è\82µ\82Ü\82·\81B</dd>\r
+<dd>ファイル オブジェクト構造体へのポインタを指定します。</dd>\r
 <dt>func</dt>\r
-<dd>\83f\81[\83^\82ð\93n\82·\83\86\81[\83U\92è\8b`\8aÖ\90\94\82Ö\82Ì\83|\83C\83\93\83^\82ð\8ew\92è\82µ\82Ü\82·\81B\82±\82Ì\8aÖ\90\94\82Ì\8ed\97l\82Í\83T\83\93\83v\83\8b\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B</dd>\r
+<dd>データを渡すユーザ定義関数へのポインタを指定します。この関数の仕様はサンプルを参照してください。</dd>\r
 <dt>btf</dt>\r
-<dd>\93]\91\97\82·\82é\83o\83C\83g\90\94(0\81`UINT\82Ì\8dÅ\91å\92l)\82ð\8ew\92è\82µ\82Ü\82·\81B</dd>\r
+<dd>転送するバイト数(0~UINTの最大値)を指定します。</dd>\r
 <dt>bf</dt>\r
-<dd>\8eÀ\8dÛ\82É\93]\91\97\82³\82ê\82½\83o\83C\83g\90\94\82ð\8ai\94[\82·\82é\95Ï\90\94\82ð\8ew\82·\83|\83C\83\93\83^\82ð\8ew\92è\82µ\82Ü\82·\81B</dd>\r
+<dd>実際に転送されたバイト数を格納する変数を指すポインタを指定します。</dd>\r
 </dl>\r
 </div>\r
 \r
 \r
 <div class="para ret">\r
-<h4>\96ß\82è\92l</h4>\r
+<h4>戻り値</h4>\r
 <p>\r
 <a href="rc.html#ok">FR_OK</a>,\r
 <a href="rc.html#de">FR_DISK_ERR</a>,\r
 <a href="rc.html#ie">FR_INT_ERR</a>,\r
-<a href="rc.html#nr">FR_NOT_READY</a>,\r
 <a href="rc.html#de">FR_DENIED</a>,\r
 <a href="rc.html#io">FR_INVALID_OBJECT</a>,\r
 <a href="rc.html#tm">FR_TIMEOUT</a>\r
@@ -54,40 +53,40 @@ FRESULT f_forward (
 \r
 \r
 <div class="para desc">\r
-<h4>\89ð\90à</h4>\r
-<p>\83t\83@\83C\83\8b\82Ì\83f\81[\83^\82ð\83o\83b\83t\83@\82É\93Ç\82Ý\8fo\82³\82¸\82É\91\97\90M\83X\83g\83\8a\81[\83\80\82É\92¼\90Ú\93]\91\97\82µ\82Ü\82·\81B\83A\83v\83\8a\83P\81[\83V\83\87\83\93\91¤\82Å\83f\81[\83^\81E\83o\83b\83t\83@\82ð\95K\97v\82Æ\82µ\82È\82¢\82Ì\82Å\81A\83\81\83\82\83\8a\82Ì\8cÀ\82ç\82ê\82½\8aÂ\8b«\82Å\97L\8cø\82Å\82·\81B\83\8a\81[\83h/\83\89\83C\83g\81E\83|\83C\83\93\83^\82Í\93]\91\97\82³\82ê\82½\83o\83C\83g\90\94\82¾\82¯\90i\82Ý\82Ü\82·\81B\8ew\92è\82³\82ê\82½\83o\83C\83g\90\94\82Ì\93]\91\97\92\86\82É\83t\83@\83C\83\8b\82Ì\8fI\92[\82É\92B\82µ\82½\8fê\8d\87\82â\91\97\90M\83X\83g\83\8a\81[\83\80\82ª\83r\83W\81[\82É\82È\82Á\82½\8fê\8d\87\81A<tt class="arg">*bf</tt>\82Í<tt class="arg">btf</tt>\82æ\82è\82à\8f¬\82³\82­\82È\82è\82Ü\82·\81B</p>\r
+<h4>解説</h4>\r
+<p>ファイルのデータをバッファに読み出さずに送信ストリームに直接転送します。アプリケーション側でデータ バッファを必要としないので、メモリの限られた環境で有効です。リード/ライト ポインタは転送されたバイト数だけ進みます。指定されたバイト数の転送中にファイルの終端に達した場合や送信ストリームがビジーになった場合、<tt class="arg">*bf</tt>は<tt class="arg">btf</tt>よりも小さくなります。</p>\r
 </div>\r
 \r
 \r
 <div class="para comp">\r
-<h4>\91Î\89\9e\8fî\95ñ</h4>\r
-<p><tt>_USE_FORWARD == 1</tt>\82Å\81A\8a\8e\82Â<tt>_FS_TINY == 1</tt>\82Ì\82Æ\82«\82É\8eg\97p\89Â\94\\82Å\82·\81B</p>\r
+<h4>対応情報</h4>\r
+<p><tt>_USE_FORWARD == 1</tt>のときに使用可能です。</p>\r
 </div>\r
 \r
 \r
 <div class="para use">\r
-<h4>\8eg\97p\97á\81i\83I\81[\83f\83B\83I\8dÄ\90\81j</h4>\r
+<h4>使用例(オーディオ再生)</h4>\r
 <pre>\r
 <span class="c">/*-----------------------------------------------------------------------*/</span>\r
-<span class="c">/* f_forward\8aÖ\90\94\82©\82ç\8cÄ\82Î\82ê\82é\83f\81[\83^\91\97\90M\8aÖ\90\94\82Ì\97á                           */</span>\r
+<span class="c">/* f_forward関数から呼ばれるデータ送信関数の例                           */</span>\r
 <span class="c">/*-----------------------------------------------------------------------*/</span>\r
 \r
-UINT out_stream (   <span class="c">/* \96ß\82è\92l: \93]\91\97\82³\82ê\82½\83o\83C\83g\90\94\82Ü\82½\82Í\83X\83g\83\8a\81[\83\80\82Ì\8fó\91Ô */</span>\r
-    const BYTE *p,  <span class="c">/* \93]\91\97\82·\82é\83f\81[\83^\82ð\8ew\82·\83|\83C\83\93\83^ */</span>\r
-    UINT btf        <span class="c">/* &gt;0: \93]\91\97\82ð\8ds\82¤(\83o\83C\83g\90\94). 0: \83X\83g\83\8a\81[\83\80\82Ì\8fó\91Ô\82ð\92²\82×\82é */</span>\r
+UINT out_stream (   <span class="c">/* 戻り値: 転送されたバイト数またはストリームの状態 */</span>\r
+    const BYTE *p,  <span class="c">/* 転送するデータを指すポインタ */</span>\r
+    UINT btf        <span class="c">/* &gt;0: 転送を行う(バイト数). 0: ストリームの状態を調べる */</span>\r
 )\r
 {\r
     UINT cnt = 0;\r
 \r
 \r
-    if (btf == 0) {     <span class="c">/* \83Z\83\93\83X\97v\8b\81 */</span>\r
-        <span class="c">/* \83X\83g\83\8a\81[\83\80\82Ì\8fó\91Ô\82ð\95Ô\82· (0: \83r\83W\81[, 1: \83\8c\83f\83B) */</span>\r
-        <span class="c">/* \88ê\92U\81A\83\8c\83f\83B\82ð\95Ô\82µ\82½\82ç\81A\91±\82­\93]\91\97\97v\8b\81\82Å\8f­\82È\82­\82Æ\82à1\83o\83C\83g\82Í */</span>\r
-        <span class="c">/* \93]\91\97\82³\82ê\82È\82¢\82Æ f_forward\8aÖ\90\94\82Í FR_INT_ERR \82Æ\82È\82é\81B */</span>\r
+    if (btf == 0) {     <span class="c">/* センス要求 */</span>\r
+        <span class="c">/* ストリームの状態を返す (0: ビジー, 1: レディ) */</span>\r
+        <span class="c">/* 一旦、レディを返したら、続く転送要求で少なくとも1バイトは */</span>\r
+        <span class="c">/* 転送されないと f_forward関数は FR_INT_ERR となる。 */</span>\r
         if (FIFO_READY) cnt = 1;\r
     }\r
-    else {              <span class="c">/* \93]\91\97\97v\8b\81 */</span>\r
-        do {    <span class="c">/* \91S\82Ä\82Ì\83o\83C\83g\82ð\93]\91\97\82·\82é\82©\81A\83X\83g\83\8a\81[\83\80\82ª\83r\83W\81[\82É\82È\82é\82Ü\82Å\8cJ\82è\95Ô\82· */</span>\r
+    else {              <span class="c">/* 転送要求 */</span>\r
+        do {    <span class="c">/* 全てのバイトを転送するか、ストリームがビジーになるまで繰り返す */</span>\r
             FIFO_PORT = *p++;\r
             cnt++;\r
         } while (cnt &lt; btf &amp;&amp; FIFO_READY);\r
@@ -98,31 +97,31 @@ UINT out_stream (   <span class="c">/* 
 \r
 \r
 <span class="c">/*-----------------------------------------------------------------------*/</span>\r
-<span class="c">/* f_forward\8aÖ\90\94\82Ì\8eg\97p\97á                                                 */</span>\r
+<span class="c">/* f_forward関数の使用例                                                 */</span>\r
 <span class="c">/*-----------------------------------------------------------------------*/</span>\r
 \r
 FRESULT play_file (\r
-    char *fn        <span class="c">/* \8dÄ\90\82·\82é\83I\81[\83f\83B\83I\81E\83t\83@\83C\83\8b\96¼\82ð\8ew\82·\83|\83C\83\93\83^ */</span>\r
+    char *fn        <span class="c">/* 再生するオーディオ ファイル名を指すポインタ */</span>\r
 )\r
 {\r
     FRESULT rc;\r
     FIL fil;\r
     UINT dmy;\r
 \r
-    <span class="c">/* \83t\83@\83C\83\8b\82ð\93Ç\82Ý\8fo\82µ\83\82\81[\83h\82Å\8aJ\82­ */</span>\r
+    <span class="c">/* ファイルを読み出しモードで開く */</span>\r
     rc = f_open(&amp;fil, fn, FA_READ);\r
     if (rc) return rc;\r
 \r
-    <span class="c">/* \91S\82Ä\82Ì\83f\81[\83^\82ª\93]\91\97\82³\82ê\82é\82©\83G\83\89\81[\82ª\94­\90\82·\82é\82Ü\82Å\91±\82¯\82é */</span>\r
-    while (rc == FR_OK &amp;&amp; fil.fptr &lt; fil.fsize) {\r
+    <span class="c">/* 全てのデータが転送されるかエラーが発生するまで続ける */</span>\r
+    while (rc == FR_OK &amp;&amp; !f_eof(&amp;fil)) {\r
 \r
-        <span class="c">/* \82Ù\82©\82Ì\8f\88\97\9d... */</span>\r
+        <span class="c">/* ほかの処理... */</span>\r
 \r
-        <span class="c">/* \92è\8aú\93I\82Ü\82½\82Í\97v\8b\81\82É\89\9e\82\82Ä\83f\81[\83^\82ð\83X\83g\83\8a\81[\83\80\82É\91\97\8fo\82·\82é */</span>\r
+        <span class="c">/* 定期的または要求に応じてデータをストリームに送出する */</span>\r
         rc = f_forward(&amp;fil, out_stream, 1000, &amp;dmy);\r
     }\r
 \r
-    <span class="c">/* \83t\83@\83C\83\8b\82ð\95Â\82\82Ä\96ß\82é */</span>\r
+    <span class="c">/* ファイルを閉じて戻る */</span>\r
     f_close(&amp;fil);\r
     return rc;\r
 }\r
@@ -131,10 +130,10 @@ FRESULT play_file (
 \r
 \r
 <div class="para ref">\r
-<h4>\8eQ\8fÆ</h4>\r
+<h4>参照</h4>\r
 <p><tt><a href="open.html">f_open</a>, <a href="gets.html">fgets</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>\r
 </div>\r
 \r
-<p class="foot"><a href="../00index_j.html">\96ß\82é</a></p>\r
+<p class="foot"><a href="../00index_j.html">戻る</a></p>\r
 </body>\r
 </html>\r