Files
hustoj/web/cppreference-zh/chmhelp/cpp-io-c-setbuf.html
2025-08-01 12:57:54 +08:00

114 lines
8.4 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>std::setbuf</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_io_c_setbuf skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">std::</span>setbuf</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-io.html">io</a>&lrm; | <a href="cpp-io-c.html">c</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<table class="t-dcl-begin">
<tbody>
<tr class="t-dsc-header">
<td>
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="cpp-header-cstdio.html">&lt;cstdio&gt;</a></code></div>
</td>
<td></td>
<td></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span> setbuf<span class="br0">(</span> <a href="cpp-io-c.html"><span class="kw1876">std::<span class="me2">FILE</span></span></a><span class="sy2">*</span> stream, <span class="kw4">char</span><span class="sy2">*</span> buffer <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#20026; C &#27969; <code>stream</code> &#19978;&#36827;&#34892;&#30340; I/O &#25805;&#20316;&#35774;&#32622;&#20869;&#37096;&#32531;&#20914;&#21306;&#12290;</p>
<p>&#33509; <code>buffer</code> &#38750;&#31354;&#65292;&#21017;&#31561;&#20215;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-io-c-setvbuf.html"><span class="kw1817">std::<span class="me2">setvbuf</span></span></a><span class="br0">(</span>stream, buffer, <a href="cpp-io-c.html"><span class="kw1885">_IOFBF</span></a>, <a href="cpp-io-c.html"><span class="kw1884">BUFSIZ</span></a><span class="br0">)</span></span></span> &#12290;</p>
<p>&#33509; <code>buffer</code> &#20026;&#31354;&#65292;&#21017;&#31561;&#20215;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-io-c-setvbuf.html"><span class="kw1817">std::<span class="me2">setvbuf</span></span></a><span class="br0">(</span>stream, <a href="cpp-types-NULL.html"><span class="kw103">NULL</span></a>, <a href="cpp-io-c.html"><span class="kw1887">_IONBF</span></a>, <span class="nu0">0</span><span class="br0">)</span></span></span> &#65292;&#36825;&#20250;&#20851;&#38381;&#32531;&#20914;&#12290;</p>
<h3><span class="mw-headline" id=".E5.8F.82.E6.95.B0">&#21442;&#25968;</span></h3>
<table class="t-par-begin">
<tr class="t-par">
<td>stream</td>
<td>-</td>
<td>&#35201;&#35774;&#32622;&#32531;&#20914;&#21306;&#30340;&#25991;&#20214;&#27969;</td>
</tr>
<tr class="t-par">
<td>buffer</td>
<td>-</td>
<td>&#25351;&#21521;&#25991;&#20214;&#27969;&#25152;&#29992;&#30340;&#32531;&#20914;&#21306;&#30340;&#25351;&#38024;&#12290;&#33509;&#25552;&#20379;&#31354;&#25351;&#38024;&#65292;&#21017;&#20851;&#38381;&#32531;&#20914;&#12290;&#33509;&#23427;&#38750;&#31354;&#65292;&#21017;&#25968;&#32452;&#24517;&#39035;&#36275;&#20197;&#20445;&#26377;&#33267;&#23569; <code>BUFSIZ</code> &#20010;&#23383;&#31526;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.BF.94.E5.9B.9E.E5.80.BC">&#36820;&#22238;&#20540;</span></h3>
<p>&#65288;&#26080;&#65289;</p>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#33509; <span class="t-lc"><a href="cpp-io-c.html">BUFSIZ</a></span> &#19981;&#26159;&#36866;&#21512;&#30340;&#32531;&#20914;&#21306;&#22823;&#23567;&#65292;&#21017;&#33021;&#29992; <span class="t-lc"><a href="cpp-io-c-setvbuf.html">std::setvbuf</a></span> &#26356;&#25913;&#23427;&#12290;</p>
<p><span class="t-lc"><a href="cpp-io-c-setvbuf.html">std::setvbuf</a></span> &#20134;&#24212;&#24403;&#29992;&#20110;&#26816;&#27979;&#38169;&#35823;&#65292;&#22240;&#20026; <code>std::setbuf</code> &#19981;&#25351;&#31034;&#25104;&#21151;&#25110;&#22833;&#36133;&#12290;</p>
<p>&#27492;&#20989;&#25968;&#20165;&#21487;&#22312;&#24050;&#23558; <code>stream</code> &#20851;&#32852;&#21040;&#25171;&#24320;&#30340;&#25991;&#20214;&#21518;&#65292;&#20294;&#35201;&#22312;&#20219;&#20309;&#20854;&#20182;&#25805;&#20316;&#65288;&#38500;&#20102;&#23545; <span class="t-lc"><strong class="selflink">std::setbuf</strong></span>/<code>std::setvbuf</code> &#30340;&#22833;&#36133;&#35843;&#29992;&#65289;&#21069;&#20351;&#29992;&#12290;</p>
<p>&#19968;&#20010;&#24120;&#35265;&#38169;&#35823;&#26159;&#35774;&#32622; stdin &#25110; stdout &#30340;&#32531;&#20914;&#21306;&#20026;&#29983;&#23384;&#26399;&#22312;&#31243;&#24207;&#32456;&#27490;&#21069;&#32467;&#26463;&#30340;&#25968;&#32452;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span>
<span class="kw4">char</span> buf<span class="br0">[</span><a href="cpp-io-c.html"><span class="kw1884">BUFSIZ</span></a><span class="br0">]</span><span class="sy4">;</span>
std<span class="sy4">::</span><span class="me2">setbuf</span><span class="br0">(</span><span class="kw2">stdin</span>, buf<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span> <span class="co1">// buf &#30340;&#29983;&#23384;&#26399;&#32467;&#26463;&#65292;&#26410;&#23450;&#20041;&#34892;&#20026;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<p>setbuf &#21487;&#29992;&#20110;&#31105;&#29992;&#35201;&#27714;&#31435;&#21363;&#36755;&#20986;&#30340;&#27969;&#19978;&#30340;&#32531;&#20914;</p>
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;cstdio&gt;</span>
<span class="co2">#include &lt;thread&gt;</span>
<span class="co2">#include &lt;chrono&gt;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">using</span> <span class="kw1">namespace</span> std<span class="sy4">::</span><span class="me2">chrono_literals</span><span class="sy4">;</span>
std<span class="sy4">::</span><span class="me2">setbuf</span><span class="br0">(</span><span class="kw2">stdout</span>, <a href="cpp-types-NULL.html"><span class="kw103">NULL</span></a><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#26080;&#32531;&#20914;&#30340; stdout</span>
<a href="cpp-io-c-putchar.html"><span class="kw1828">std::<span class="me2">putchar</span></span></a><span class="br0">(</span><span class="st0">&#39;a&#39;</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22312;&#26080;&#32531;&#20914;&#30340;&#27969;&#19978;&#31435;&#21363;&#26174;&#29616;</span>
<a href="cpp-thread-sleep_for.html"><span class="kw2148">std::<span class="me2">this_thread</span><span class="sy4">::</span><span class="me2">sleep_for</span></span></a><span class="br0">(</span>1s<span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-io-c-putchar.html"><span class="kw1828">std::<span class="me2">putchar</span></span></a><span class="br0">(</span><span class="st0">&#39;b&#39;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">ab</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-io-c-setvbuf.html"><span class="t-lines"><span>setvbuf</span></span></a></div>
</div>
</td>
<td>&#20026;&#25991;&#20214;&#27969;&#35774;&#32622;&#32531;&#20914;&#21306;&#19982;&#20854;&#22823;&#23567;<br />
<span class="t-mark">(&#20989;&#25968;)</span></td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>