blob: e7af5f8b21bcf19b0e3619b22b8eec05de1a24be [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="up" title="FatFs" href="../00index_j.html">
<link rel="alternate" hreflang="en" title="English" href="../en/lseek.html">
<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
<title>FatFs - f_lseek</title>
</head>
<body>
<div class="para">
<h2>f_lseek</h2>
<p>ƒtƒ@ƒCƒ‹‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ðˆÚ“®‚µ‚Ü‚·B‚Ü‚½A‚‘¬ƒV[ƒN‹@”\Žg—pŽž‚É‚ÍCLMT(Œãq)‚̍쐬‚ðs‚¢‚Ü‚·B</p>
<pre>
FRESULT f_lseek (
FIL* <em>FileObject</em>, <span class="c">/* ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
DWORD <em>Offset</em> <span class="c">/* ˆÚ“®æƒIƒtƒZƒbƒg */</span>
);
</pre>
</div>
<div class="para">
<h4>ˆø”</h4>
<dl class="par">
<dt>FileObject</dt>
<dd>‘ΏۂƂȂéƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
<dt>Offset</dt>
<dd>ˆÚ“®æ‚̃IƒtƒZƒbƒgiƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^j’lBƒtƒ@ƒCƒ‹æ“ª‚©‚ç‚̃IƒtƒZƒbƒg‚ðƒoƒCƒg’PˆÊ‚ÅŽw’肵‚Ü‚·B</dd>
</dl>
</div>
<div class="para">
<h4>–ß‚è’l</h4>
<dl class="ret">
<dt>FR_OK (0)</dt>
<dd>³íI—¹B</dd>
<dt>FR_DISK_ERR</dt>
<dd>ƒfƒBƒXƒNEƒGƒ‰[‚É‚æ‚鎸”sB</dd>
<dt>FR_INT_ERR</dt>
<dd>•s³‚ÈFAT\‘¢‚Ü‚½‚Í“à•”ƒGƒ‰[‚É‚æ‚鎸”sB</dd>
<dt>FR_NOT_READY</dt>
<dd>ƒƒfƒBƒA‚ªƒZƒbƒg‚³‚ê‚Ä‚¢‚È‚¢‚ȂǁA•¨—ƒhƒ‰ƒCƒu‚ª“®ì•s”\ó‘ԁB</dd>
<dt>FR_INVALID_OBJECT</dt>
<dd>–³Œø‚ȃtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒgB</dd>
<dt>FR_NOT_ENOUGH_CORE</dt>
<dd>CLMTŠi”[ƒoƒbƒtƒ@‚̃TƒCƒY‚ª•s‘«B</dd>
</dl>
</div>
<div class="para">
<h4>‰ðà</h4>
<p>ƒtƒ@ƒCƒ‹‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^(ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg“à‚Ìfptrƒƒ“ƒo‚ŁAŽŸ‚ɓǂݏo‚µE‘‚«ž‚Ý‚³‚ê‚éƒoƒCƒg‚̃IƒtƒZƒbƒg‚ðŽ¦‚·)‚ðˆÚ“®‚µ‚Ü‚·BƒIƒtƒZƒbƒg‚ÌŒ´“_‚̓tƒ@ƒCƒ‹æ“ª‚Å‚·B‘‚«ž‚݃‚[ƒh‚Ńtƒ@ƒCƒ‹EƒTƒCƒY‚æ‚è‘å‚«‚È’l‚ðŽw’è‚·‚é‚ƁA‚»‚±‚܂Ńtƒ@ƒCƒ‹EƒTƒCƒY‚ªŠg’£‚³‚êAŠg’£‚³‚ꂽ•”•ª‚̃f[ƒ^‚Í–¢’è‹`‚Æ‚È‚è‚Ü‚·Bƒf[ƒ^‚ð’x‰„–³‚­‚‘¬‚ɏ‘‚«ž‚Ý‚½‚¢‚Æ‚«‚́A—\‚ß‚±‚̊֐”‚Å•K—v‚ȃTƒCƒY‚܂Ńtƒ@ƒCƒ‹EƒTƒCƒY‚ðŠg’£‚µ‚Ä‚¨‚­‚Æ—Ç‚¢‚Å‚µ‚傤Bf_lseekŠÖ”‚ª³íI—¹‚µ‚½‚ ‚Ƃ́AƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ª³‚µ‚­ˆÚ“®‚µ‚½‚©fptr‚ðƒ`ƒFƒbƒN‚·‚é‚ׂ«‚Å‚·BƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ªŽw’è‚æ‚菬‚³‚¢‚Æ‚«‚́AŽŸ‚ÌŒ´ˆö‚ªl‚¦‚ç‚ê‚Ü‚·B</p>
<ul>
<li>”ñ‘‚«ž‚݃‚[ƒh‚Ü‚½‚͍‚‘¬ƒV[ƒNEƒ‚[ƒh‚Ì‚½‚߁Aƒtƒ@ƒCƒ‹EƒTƒCƒY‚ŃNƒŠƒbƒv‚³‚ꂽB</li>
<li>ƒtƒ@ƒCƒ‹Šg’£’†‚ɃfƒBƒXƒN‚ª–ž”t‚É‚È‚Á‚½B</li>
</ul>
<p><tt>_USE_FASTSEEK</tt>‚É1‚ªŽw’肳‚ê‚Ä‚¢‚āAŠŽ‚ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚Ì<tt>cltbl</tt>ƒƒ“ƒo‚ªNULLˆÈŠO(ƒtƒ@ƒCƒ‹‚ðŠJ‚¢‚½‚Æ‚«‚ÍNULL)‚Ì‚Æ‚«A‚‘¬ƒV[ƒNEƒ‚[ƒh‚É‚È‚è‚Ü‚·B‚±‚ê‚̓tƒ@ƒCƒ‹‚̃Nƒ‰ƒXƒ^”z’uî•ñ(CLMT)‚ðƒƒ‚ƒŠã‚É•ÛŽ‚µ‚Ä‚¨‚­‚±‚Æ‚É‚æ‚èAFAT‚ɃAƒNƒZƒX‚·‚邱‚Æ‚È‚­Œã•ûƒV[ƒN‚⃍ƒ“ƒOEƒV[ƒN‚ð‚‘¬‚ɍs‚¤‹@”\‚Å‚·B‚‘¬ƒV[ƒNEƒ‚[ƒh‚́Af_read/f_wtiteŠÖ”‚É‚à“K—p‚³‚ê‚Ü‚·B‚‘¬ƒV[ƒNEƒ‚[ƒh‚Å‚Íf_wtite/f_lseekŠÖ”‚É‚æ‚éƒtƒ@ƒCƒ‹EƒTƒCƒY‚ÌŠg’£‚Í‚Å‚«‚Ü‚¹‚ñB</p>
<p>‚‘¬ƒV[ƒN“®ì‚ðs‚¤‘O‚ɁACLMT‚ðì¬‚µ‚Ä‚¨‚­•K—v‚ª‚ ‚è‚Ü‚·B‚±‚ê‚ðì¬‚·‚é‚ɂ́A‚Ü‚¸<tt>cltbl</tt>ƒƒ“ƒo‚ÉCLMTŠi”[ƒoƒbƒtƒ@(DWORD”z—ñ)‚ւ̃|ƒCƒ“ƒ^‚ðƒZƒbƒg‚µ‚Ü‚·B‚»‚µ‚āA”z—ñ‚̐擪—v‘f‚É‚»‚Ì”z—ñ‚Ì—v‘f”‚ð“ü‚êAf_lseekŠÖ”‚ð<tt>Offset</tt>‚É<tt>CREATE_LINKMAP</tt>‚ðŽw’肵‚ÄŽÀs‚µ‚Ü‚·BŠÖ”‚ª¬Œ÷‚·‚é‚ÆCLMT‚ªì¬‚³‚êAˆÈ~‚Ìf_read/f_write/f_lseekŠÖ”‚Å‚ÍFAT‚ւ̃AƒNƒZƒX‚Í”­¶‚µ‚Ü‚¹‚ñB<tt>FR_NOT_ENOUGH_CORE</tt>‚ÅŽ¸”s‚µ‚½‚Æ‚«‚Í”z—ñƒTƒCƒY‚ª•s‘«‚ŁAæ“ª—v‘f‚É‚ÍŽÀÛ‚É•K—v‚Æ‚È‚é—v‘f”‚ª•Ô‚³‚ê‚Ü‚·B•K—v‚È—v‘f”‚́A(ƒtƒ@ƒCƒ‹‚Ì•ªŠ„” + 1) * 2 ‚Å‚·B‚½‚Æ‚¦‚΁Aƒtƒ@ƒCƒ‹‚ª5‚‚ɕª’f‚³‚ê‚Ä‚¢‚é‚Æ‚«‚É•K—v‚È—v‘f”‚́A12‚Æ‚È‚è‚Ü‚·B</p>
</div>
<div class="para">
<h4>‘Ήžî•ñ</h4>
<p><tt>_FS_MINIMIZE &lt; 3</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
</div>
<div class="para">
<h4>Žg—p—á</h4>
<pre>
<span class="c">/* ƒtƒ@ƒCƒ‹‚ðŠJ‚­ */</span>
file = malloc(sizeof(FIL));
if (!file) ...
res = f_open(file, "file.dat", FA_READ|FA_WRITE);
if (res) ...
<span class="c">/* ƒtƒ@ƒCƒ‹EƒIƒtƒZƒbƒg5000‚ÖˆÚ“® */</span>
res = f_lseek(file, 5000, 0);
<span class="c">/* ƒtƒ@ƒCƒ‹I’[‚ÖˆÚ“®(ƒtƒ@ƒCƒ‹’Ç‹L‚̏€”õ) */</span>
res = f_lseek(file, f_size(file), 0);
<span class="c">/* 3000ƒoƒCƒgi‚ß‚é */</span>
res = f_lseek(file, f_tell(file) + 3000, 0);
<span class="c">/* 2000ƒoƒCƒg–ß‚· (ƒI[ƒo[ƒtƒ[‚É’ˆÓ) */</span>
res = f_lseek(file, f_tell(file) - 2000, 0);
</pre>
<pre>
<span class="c">/* ƒNƒ‰ƒXƒ^æsŠ„‚è“–‚Ä (ƒXƒgƒŠ[ƒ~ƒ“ƒOEƒ‰ƒCƒgŽž‚̃oƒbƒtƒ@EƒI[ƒo[ƒ‰ƒ“–hŽ~) */</span>
res = f_open(file, "record.wav", FA_CREATE_NEW | FA_WRITE); <span class="c">/* ƒtƒ@ƒCƒ‹ì¬ */</span>
res = f_lseek(file, MAX_SIZE, 0); <span class="c">/* \•ª‚ȃNƒ‰ƒXƒ^‚̐æsŠ„‚è“–‚Ä */</span>
if (res || file.fptr != PRE_SIZE) .... <span class="c">/* ³‚µ‚­ƒtƒ@ƒCƒ‹‚ªŠg’£‚³‚ꂽ‚©ƒ`ƒFƒbƒN */</span>
res = f_lseek(file, DATA_START, 0); <span class="c">/* ƒf[ƒ^EƒXƒgƒŠ[ƒ€‚Ì‹L˜^(ƒAƒƒP[ƒVƒ‡ƒ“ƒfƒBƒŒƒC–³‚µ) */</span>
...
res = f_truncate(file); <span class="c">/* •s—v—̈æ‚̐؂èŽÌ‚Ä */</span>
res = f_lseek(file, 0, 0); <span class="c">/* ƒwƒbƒ_‚Ì‹L˜^ */</span>
...
res = f_close(file);
</pre>
<pre>
<span class="c">/* ‚‘¬ƒV[ƒN‹@”\‚ðŽg‚¤ */</span>
DWORD lktbl[SZ_TBL]; <span class="c">/* ƒŠƒ“ƒNEƒ}ƒbƒvEƒe[ƒuƒ‹Ši”[ƒoƒbƒtƒ@ */</span>
res = f_lseek(file, ofs1); <span class="c">/* ’ʏíƒV[ƒN (ƒI[ƒvƒ“ŽžAfile.cltbl == NULL) */</span>
file.cltbl = lktbl; <span class="c">/* ‚‘¬ƒV[ƒN‹@”\‚Ì—LŒø‰» */</span>
lktbl[0] = SZ_TBL; <span class="c">/* æ“ª—v‘f‚É”z—ñ—v‘f”‚ðƒZƒbƒg */</span>
res = f_lseek(file, CREATE_LINKMAP); <span class="c">/* CLMT‚̍쐬 */</span>
...
res = f_lseek(file, ofs2); <span class="c">/* ˆÈ~Af_read/f_write/f_lseek‚ÅFATƒAƒNƒZƒX‚ª”­¶‚µ‚È‚¢ */</span>
</pre>
</div>
<div class="para">
<h4>ŽQÆ</h4>
<p><tt><a href="open.html">f_open</a>, <a href="sfile.html">FIL</a></tt></p>
</div>
<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
</body>
</html>