56
56
<li><a href="http://search.cpan.org">CPAN</a></li>
57
<li><a href="http://www.perl.org">Perl.org</a></li>
57
58
<li><a href="http://www.perl.com">Perl.com</a></li>
58
<li><a href="http://www.perl.org">Perl.org</a></li>
59
<li><a href="http://perlbuzz.com">Perl Buzz</a></li>
60
<li><a href="http://www.perlfoundation.org/perl5/index.cgi">Perl 5 Wiki</a></li>
61
<li><a href="http://jobs.perl.org">Perl Jobs</a></li>
59
62
<li><a href="http://www.pm.org">Perl Mongers</a></li>
60
63
<li><a href="http://www.perlmonks.org">Perl Monks</a></li>
61
64
<li><a href="http://planet.perl.org">Planet Perl</a></li>
66
69
<li>Site maintained by<br><a href="http://perl.jonallen.info">Jon Allen</a>
67
70
(<a href="http://perl.jonallen.info">JJ</a>)</li>
68
<li class="spaced">Last updated on<br>23 April 2006</li>
71
<li class="spaced">Last updated on<br>23 December 2007</li>
69
72
<li class="spaced">See the <a href="http://perl.jonallen.info/projects/perldoc">project page</a> for
76
79
<div id="centerContent">
77
80
<div id="contentHeader">
78
81
<div id="contentHeaderLeft"><a href="#" onClick="showLeft()">Show navigation</a></div>
79
<div id="contentHeaderCentre">-- Perl 5.8.8 documentation --</div>
82
<div id="contentHeaderCentre">-- Perl 5.10.0 documentation --</div>
80
83
<div id="contentHeaderRight"><a href="#" onClick="showRight()">Show toolbar</a></div>
82
85
<div id="breadCrumbs"><a href="../index.html">Home</a> > <a href="../index-language.html">Language reference</a> > <a href="../index-functions.html">Functions</a> > flock</div>
122
125
network; you would need to use the more system-specific <code class="inline"><a class="l_k" href="../functions/fcntl.html">fcntl</a></code> for
123
126
that. If you like you can force Perl to ignore your system's flock(2)
124
127
function, and so provide its own fcntl(2)-based emulation, by passing
125
the switch <code class="inline">-Ud_flock</code>
128
the switch <code class="inline">-<span class="w">Ud_flock</span></code>
126
129
to the <i>Configure</i> program when you configure
128
131
<p>Here's a mailbox appender for BSD systems.</p>
129
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <a class="l_w" href="../Fcntl.html">Fcntl</a> <span class="q">':flock'</span><span class="sc">;</span> <span class="c"># import LOCK_* constants</span></pre>
132
<pre class="verbatim"> <a class="l_k" href="../functions/use.html">use</a> <span class="w">Fcntl</span> <span class="q">':flock'</span><span class="sc">;</span> <span class="c"># import LOCK_* constants</span></pre>
130
133
<pre class="verbatim"><a name="lock"></a> sub <span class="m">lock</span> <span class="s">{</span>
131
<a class="l_k" href="../functions/flock.html">flock</a><span class="s">(</span>MBOX<span class="cm">,</span>LOCK_EX<span class="s">)</span><span class="sc">;</span>
134
<a class="l_k" href="../functions/flock.html">flock</a><span class="s">(</span><span class="w">MBOX</span><span class="cm">,</span><span class="w">LOCK_EX</span><span class="s">)</span><span class="sc">;</span>
132
135
<span class="c"># and, in case someone appended</span>
133
136
<span class="c"># while we were waiting...</span>
134
<a class="l_k" href="../functions/seek.html">seek</a><span class="s">(</span>MBOX<span class="cm">,</span> <span class="n">0</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
137
<a class="l_k" href="../functions/seek.html">seek</a><span class="s">(</span><span class="w">MBOX</span><span class="cm">,</span> <span class="n">0</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
135
138
<span class="s">}</span></pre>
136
139
<pre class="verbatim"><a name="unlock"></a> sub <span class="m">unlock</span> <span class="s">{</span>
137
<a class="l_k" href="../functions/flock.html">flock</a><span class="s">(</span>MBOX<span class="cm">,</span>LOCK_UN<span class="s">)</span><span class="sc">;</span>
140
<a class="l_k" href="../functions/flock.html">flock</a><span class="s">(</span><span class="w">MBOX</span><span class="cm">,</span><span class="w">LOCK_UN</span><span class="s">)</span><span class="sc">;</span>
138
141
<span class="s">}</span></pre>
139
<pre class="verbatim"> <a class="l_k" href="../functions/open.html">open</a><span class="s">(</span>MBOX<span class="cm">,</span> <span class="q">">>/usr/spool/mail/$ENV{'USER'}"</span><span class="s">)</span>
142
<pre class="verbatim"> <a class="l_k" href="../functions/open.html">open</a><span class="s">(</span><span class="w">MBOX</span><span class="cm">,</span> <span class="q">">>/usr/spool/mail/$ENV{'USER'}"</span><span class="s">)</span>
140
143
or <a class="l_k" href="../functions/die.html">die</a> <span class="q">"Can't open mailbox: $!"</span><span class="sc">;</span></pre>
141
144
<pre class="verbatim"> <a class="l_k" href="../functions/lock.html">lock</a><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
142
145
<a class="l_k" href="../functions/print.html">print</a> <span class="i">MBOX</span> <span class="i">$msg</span><span class="cm">,</span><span class="q">"\n\n"</span><span class="sc">;</span>