📁 File Manager Pro
v10.0.3 | PHP: 8.1.34
Server: Apache
2026-06-22 08:57:26
📂
/ (Root)
/
opt
/
alt
/
ruby20
/
share
/
doc
/
ruby
/
capi
/
html
/
dd
/
d10
📍 /opt/alt/ruby20/share/doc/ruby/capi/html/dd/d10
🔄 Refresh
✏️
Editing: wait_8c_source.html
Read Only
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.14"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Ruby: ext/io/wait/wait.c Source File</title> <link href="../../tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="../../jquery.js"></script> <script type="text/javascript" src="../../dynsections.js"></script> <link href="../../doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Ruby  <span id="projectnumber">2.0.0p648(2015-12-16revision53162)</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.14 --> <script type="text/javascript" src="../../menudata.js"></script> <script type="text/javascript" src="../../menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('../../',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="../../dir_31cedd4509e06940f559c1ca2f722e02.html">ext</a></li><li class="navelem"><a class="el" href="../../dir_9c666a50e7113ab35ff62afe9b9a906c.html">io</a></li><li class="navelem"><a class="el" href="../../dir_d75b5a0ad16db29483e60c71309308e0.html">wait</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">wait.c</div> </div> </div><!--header--> <div class="contents"> <a href="../../dd/d10/wait_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/**********************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"></span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> io/wait.c -</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> $Author: nobu $</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> created at: Tue Aug 28 09:08:06 JST 2001</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> All the files in this distribution are covered under the Ruby's</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> license (see the file COPYING).</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">**********************************************************************/</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="../../d9/d3f/ruby_8h.html">ruby.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="../../dc/dac/io_8h.html">ruby/io.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#if defined(HAVE_UNISTD_H) && (defined(__sun))</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="../../da/d6f/unistd_8h.html">unistd.h</a>></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if defined(HAVE_SYS_IOCTL_H)</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <sys/ioctl.h></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#if defined(FIONREAD_HEADER)</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include FIONREAD_HEADER</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifdef HAVE_RB_W32_IOCTLSOCKET</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#define ioctl ioctlsocket</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define ioctl_arg u_long</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define ioctl_arg2num(i) ULONG2NUM(i)</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#a51eb57b7d348c5aafb399675eb838cd1"> 32</a></span> <span class="preprocessor">#define ioctl_arg int</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#a887ff962bf9167ca235be84b9f744c7e"> 33</a></span> <span class="preprocessor">#define ioctl_arg2num(i) INT2NUM(i)</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifdef HAVE_RB_W32_IS_SOCKET</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define FIONREAD_POSSIBLE_P(fd) rb_w32_is_socket(fd)</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#ab24f9418ce2fd4cef6b19bed1d2437e0"> 39</a></span> <span class="preprocessor">#define FIONREAD_POSSIBLE_P(fd) ((void)(fd),Qtrue)</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/d10/wait_8c.html#a74472de5d38a419416a1855ee9e5a907">io_ready_p</a> <a class="code" href="../../dd/d10/wait_8c.html#accc1a89be2dc1b517bf638bfacba14ac">_</a>((<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> io));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/d10/wait_8c.html#af6b138ab386e620945d0aabbca345c04">io_wait_readable</a> <a class="code" href="../../dd/d10/wait_8c.html#accc1a89be2dc1b517bf638bfacba14ac">_</a>((<span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> io));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/d10/wait_8c.html#ad12f1626c9f6226d30513d151c7557a5">io_wait_writable</a> <a class="code" href="../../dd/d10/wait_8c.html#accc1a89be2dc1b517bf638bfacba14ac">_</a>((<span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> io));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/d10/wait_8c.html#ad8c8f76fd07efc7b2b5c1f96cabc5831">Init_wait</a> <a class="code" href="../../dd/d10/wait_8c.html#accc1a89be2dc1b517bf638bfacba14ac">_</a>((<span class="keywordtype">void</span>));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">/*</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * call-seq:</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * io.nread -> int</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> *</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> * Returns number of bytes that can be read without blocking.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> * Returns zero if no information available.</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> */</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#a17ed2abe545cdbfcc452a1556141fd1c"> 56</a></span> <a class="code" href="../../dd/d10/wait_8c.html#a17ed2abe545cdbfcc452a1556141fd1c">io_nread</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> io)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="../../dd/d7e/structrb__io__t.html">rb_io_t</a> *fptr;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">int</span> len;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="../../d6/d46/structioctl__arg.html">ioctl_arg</a> n;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="../../dc/dac/io_8h.html#aa00f0dca97539a5dd0c4e67ad5be93a3">GetOpenFile</a>(io, fptr);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="../../dc/dac/io_8h.html#a8557569435da7f8a669908723fcd5e94">rb_io_check_readable</a>(fptr);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  len = <a class="code" href="../../dc/dac/io_8h.html#a88e47151779c6afecd2b4a13956d80c9">rb_io_read_pending</a>(fptr);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (len > 0) <span class="keywordflow">return</span> len;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../dd/d10/wait_8c.html#ab24f9418ce2fd4cef6b19bed1d2437e0">FIONREAD_POSSIBLE_P</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>)) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dc/db1/win32_8h.html#ae3a230c65883ec8edc50e3a09ca80003">ioctl</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>, FIONREAD, &n)) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">if</span> (n > 0) <span class="keywordflow">return</span> <a class="code" href="../../dd/d10/wait_8c.html#a887ff962bf9167ca235be84b9f744c7e">ioctl_arg2num</a>(n);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">/*</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> * call-seq:</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * io.ready? -> true, false or nil</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> *</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> * Returns true if input available without blocking, or false.</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * Returns nil if no information available.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> */</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#a74472de5d38a419416a1855ee9e5a907"> 81</a></span> <a class="code" href="../../dd/d10/wait_8c.html#a74472de5d38a419416a1855ee9e5a907">io_ready_p</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> io)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="../../dd/d7e/structrb__io__t.html">rb_io_t</a> *fptr;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="../../d6/d46/structioctl__arg.html">ioctl_arg</a> n;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="../../dc/dac/io_8h.html#aa00f0dca97539a5dd0c4e67ad5be93a3">GetOpenFile</a>(io, fptr);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="../../dc/dac/io_8h.html#a8557569435da7f8a669908723fcd5e94">rb_io_check_readable</a>(fptr);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dc/dac/io_8h.html#a88e47151779c6afecd2b4a13956d80c9">rb_io_read_pending</a>(fptr)) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aacea3516b33941ce8149098e223a7466">Qtrue</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../dd/d10/wait_8c.html#ab24f9418ce2fd4cef6b19bed1d2437e0">FIONREAD_POSSIBLE_P</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>)) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dc/db1/win32_8h.html#ae3a230c65883ec8edc50e3a09ca80003">ioctl</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>, FIONREAD, &n)) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (n > 0) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aacea3516b33941ce8149098e223a7466">Qtrue</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba0717d2689eb68797421a02ab9295c6">Qfalse</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">/*</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> * call-seq:</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * io.wait -> IO, true, false or nil</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> * io.wait(timeout) -> IO, true, false or nil</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> *</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> * Waits until input is available or times out and returns self or nil when</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> * EOF is reached.</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> */</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#af6b138ab386e620945d0aabbca345c04"> 105</a></span> <a class="code" href="../../dd/d10/wait_8c.html#af6b138ab386e620945d0aabbca345c04">io_wait_readable</a>(<span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> io)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="../../dd/d7e/structrb__io__t.html">rb_io_t</a> *fptr;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="../../d6/d46/structioctl__arg.html">ioctl_arg</a> n;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> timeout;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">struct </span><a class="code" href="../../d1/d1b/structtimeval.html">timeval</a> timerec;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">struct </span><a class="code" href="../../d1/d1b/structtimeval.html">timeval</a> *tv;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="../../dc/dac/io_8h.html#aa00f0dca97539a5dd0c4e67ad5be93a3">GetOpenFile</a>(io, fptr);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="../../dc/dac/io_8h.html#a8557569435da7f8a669908723fcd5e94">rb_io_check_readable</a>(fptr);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaa7bed88640f01bee619f85fda09d28d7">rb_scan_args</a>(<a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <span class="stringliteral">"01"</span>, &timeout);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a>(timeout)) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  tv = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  timerec = <a class="code" href="../../db/d2e/intern_8h.html#aa7480dcdaae719ff3ef89108d1b59d44">rb_time_interval</a>(timeout);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  tv = &timerec;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dc/dac/io_8h.html#a88e47151779c6afecd2b4a13956d80c9">rb_io_read_pending</a>(fptr)) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aacea3516b33941ce8149098e223a7466">Qtrue</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../dd/d10/wait_8c.html#ab24f9418ce2fd4cef6b19bed1d2437e0">FIONREAD_POSSIBLE_P</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>)) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba0717d2689eb68797421a02ab9295c6">Qfalse</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = <a class="code" href="../../dc/dac/io_8h.html#a5d928dd718bfee4b74deb87c1e82efd6">rb_wait_for_single_fd</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>, <a class="code" href="../../dc/dac/io_8h.html#a8e8bb5fe44d8006f2b4efcb8211736bb">RB_WAITFD_IN</a>, tv);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < 0)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="../../db/dcc/error_8c.html#aec0502b6d84cff19bb2071d1386ff177">rb_sys_fail</a>(0);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="../../dc/dac/io_8h.html#a6b4f0c0735ecb278abd3f63059b5fc48">rb_io_check_closed</a>(fptr);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dc/db1/win32_8h.html#ae3a230c65883ec8edc50e3a09ca80003">ioctl</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>, FIONREAD, &n)) <a class="code" href="../../db/dcc/error_8c.html#aec0502b6d84cff19bb2071d1386ff177">rb_sys_fail</a>(0);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (n > 0) <span class="keywordflow">return</span> io;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">/*</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"> * call-seq:</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"> * io.wait_writable -> IO</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> * io.wait_writable(timeout) -> IO or nil</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> *</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"> * Waits until IO writable is available or times out and returns self or</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment"> * nil when EOF is reached.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"> */</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#ad12f1626c9f6226d30513d151c7557a5"> 145</a></span> <a class="code" href="../../dd/d10/wait_8c.html#ad12f1626c9f6226d30513d151c7557a5">io_wait_writable</a>(<span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> io)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="../../dd/d7e/structrb__io__t.html">rb_io_t</a> *fptr;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> timeout;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">struct </span><a class="code" href="../../d1/d1b/structtimeval.html">timeval</a> timerec;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">struct </span><a class="code" href="../../d1/d1b/structtimeval.html">timeval</a> *tv;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="../../dc/dac/io_8h.html#aa00f0dca97539a5dd0c4e67ad5be93a3">GetOpenFile</a>(io, fptr);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="../../dc/dac/io_8h.html#a728977df67c656197402bb30a14af953">rb_io_check_writable</a>(fptr);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaa7bed88640f01bee619f85fda09d28d7">rb_scan_args</a>(<a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <span class="stringliteral">"01"</span>, &timeout);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a>(timeout)) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  tv = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  timerec = <a class="code" href="../../db/d2e/intern_8h.html#aa7480dcdaae719ff3ef89108d1b59d44">rb_time_interval</a>(timeout);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  tv = &timerec;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = <a class="code" href="../../dc/dac/io_8h.html#a5d928dd718bfee4b74deb87c1e82efd6">rb_wait_for_single_fd</a>(fptr-><a class="code" href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">fd</a>, <a class="code" href="../../dc/dac/io_8h.html#a399021080de1229d3202874624f9d853">RB_WAITFD_OUT</a>, tv);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < 0)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="../../db/dcc/error_8c.html#aec0502b6d84cff19bb2071d1386ff177">rb_sys_fail</a>(0);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="../../dc/dac/io_8h.html#a6b4f0c0735ecb278abd3f63059b5fc48">rb_io_check_closed</a>(fptr);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> & <a class="code" href="../../dc/dac/io_8h.html#a399021080de1229d3202874624f9d853">RB_WAITFD_OUT</a>)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> io;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment">/*</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment"> * IO wait methods</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment"> */</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="../../dd/d10/wait_8c.html#ad8c8f76fd07efc7b2b5c1f96cabc5831"> 178</a></span> <a class="code" href="../../dd/d10/wait_8c.html#ad8c8f76fd07efc7b2b5c1f96cabc5831">Init_wait</a>()</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga118dc7abcdb97f56fe35727ac0ff6eb8">rb_define_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aed01d7f8e7222def13a869f4bc45530a">rb_cIO</a>, <span class="stringliteral">"nread"</span>, <a class="code" href="../../dd/d10/wait_8c.html#a17ed2abe545cdbfcc452a1556141fd1c">io_nread</a>, 0);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga118dc7abcdb97f56fe35727ac0ff6eb8">rb_define_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aed01d7f8e7222def13a869f4bc45530a">rb_cIO</a>, <span class="stringliteral">"ready?"</span>, <a class="code" href="../../dd/d10/wait_8c.html#a74472de5d38a419416a1855ee9e5a907">io_ready_p</a>, 0);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga118dc7abcdb97f56fe35727ac0ff6eb8">rb_define_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aed01d7f8e7222def13a869f4bc45530a">rb_cIO</a>, <span class="stringliteral">"wait"</span>, <a class="code" href="../../dd/d10/wait_8c.html#af6b138ab386e620945d0aabbca345c04">io_wait_readable</a>, -1);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga118dc7abcdb97f56fe35727ac0ff6eb8">rb_define_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aed01d7f8e7222def13a869f4bc45530a">rb_cIO</a>, <span class="stringliteral">"wait_readable"</span>, <a class="code" href="../../dd/d10/wait_8c.html#af6b138ab386e620945d0aabbca345c04">io_wait_readable</a>, -1);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga118dc7abcdb97f56fe35727ac0ff6eb8">rb_define_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aed01d7f8e7222def13a869f4bc45530a">rb_cIO</a>, <span class="stringliteral">"wait_writable"</span>, <a class="code" href="../../dd/d10/wait_8c.html#ad12f1626c9f6226d30513d151c7557a5">io_wait_writable</a>, -1);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div><div class="ttc" id="intern_8h_html_aa7480dcdaae719ff3ef89108d1b59d44"><div class="ttname"><a href="../../db/d2e/intern_8h.html#aa7480dcdaae719ff3ef89108d1b59d44">rb_time_interval</a></div><div class="ttdeci">struct timeval rb_time_interval(VALUE num)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d73/time_8c_source.html#l02496">time.c:2496</a></div></div> <div class="ttc" id="structioctl__arg_html"><div class="ttname"><a href="../../d6/d46/structioctl__arg.html">ioctl_arg</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0a/io_8c_source.html#l08533">io.c:8533</a></div></div> <div class="ttc" id="win32_8h_html_ae3a230c65883ec8edc50e3a09ca80003"><div class="ttname"><a href="../../dc/db1/win32_8h.html#ae3a230c65883ec8edc50e3a09ca80003">ioctl</a></div><div class="ttdeci">int ioctl(int, int,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/df2/win32_8c_source.html#l02444">win32.c:2444</a></div></div> <div class="ttc" id="io_8h_html_a8557569435da7f8a669908723fcd5e94"><div class="ttname"><a href="../../dc/dac/io_8h.html#a8557569435da7f8a669908723fcd5e94">rb_io_check_readable</a></div><div class="ttdeci">void rb_io_check_readable(rb_io_t *)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0a/io_8c_source.html#l00789">io.c:789</a></div></div> <div class="ttc" id="win32ole_8c_html_acb559820d9ca11295b4500f179ef6392"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00784">win32ole.c:784</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aacea3516b33941ce8149098e223a7466"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aacea3516b33941ce8149098e223a7466">Qtrue</a></div><div class="ttdeci">#define Qtrue</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00434">ruby.h:434</a></div></div> <div class="ttc" id="wait_8c_html_accc1a89be2dc1b517bf638bfacba14ac"><div class="ttname"><a href="../../dd/d10/wait_8c.html#accc1a89be2dc1b517bf638bfacba14ac">_</a></div><div class="ttdeci">static VALUE io_ready_p _((VALUE io))</div></div> <div class="ttc" id="structrb__io__t_html"><div class="ttname"><a href="../../dd/d7e/structrb__io__t.html">rb_io_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dac/io_8h_source.html#l00063">io.h:63</a></div></div> <div class="ttc" id="ruby_8h_html"><div class="ttname"><a href="../../d9/d3f/ruby_8h.html">ruby.h</a></div></div> <div class="ttc" id="wait_8c_html_ab24f9418ce2fd4cef6b19bed1d2437e0"><div class="ttname"><a href="../../dd/d10/wait_8c.html#ab24f9418ce2fd4cef6b19bed1d2437e0">FIONREAD_POSSIBLE_P</a></div><div class="ttdeci">#define FIONREAD_POSSIBLE_P(fd)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d10/wait_8c_source.html#l00039">wait.c:39</a></div></div> <div class="ttc" id="io_8h_html_aa00f0dca97539a5dd0c4e67ad5be93a3"><div class="ttname"><a href="../../dc/dac/io_8h.html#aa00f0dca97539a5dd0c4e67ad5be93a3">GetOpenFile</a></div><div class="ttdeci">#define GetOpenFile(obj, fp)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dac/io_8h_source.html#l00120">io.h:120</a></div></div> <div class="ttc" id="io_8h_html"><div class="ttname"><a href="../../dc/dac/io_8h.html">io.h</a></div></div> <div class="ttc" id="io_8h_html_a399021080de1229d3202874624f9d853"><div class="ttname"><a href="../../dc/dac/io_8h.html#a399021080de1229d3202874624f9d853">RB_WAITFD_OUT</a></div><div class="ttdeci">#define RB_WAITFD_OUT</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dac/io_8h_source.html#l00049">io.h:49</a></div></div> <div class="ttc" id="wait_8c_html_ad8c8f76fd07efc7b2b5c1f96cabc5831"><div class="ttname"><a href="../../dd/d10/wait_8c.html#ad8c8f76fd07efc7b2b5c1f96cabc5831">Init_wait</a></div><div class="ttdeci">void Init_wait()</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d10/wait_8c_source.html#l00178">wait.c:178</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a4832bad8845a35fc50f7a160901854a1"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a></div><div class="ttdeci">#define NIL_P(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00446">ruby.h:446</a></div></div> <div class="ttc" id="structrb__io__t_html_a0d48f8e91d24ff4f382564b30c1b41c2"><div class="ttname"><a href="../../dd/d7e/structrb__io__t.html#a0d48f8e91d24ff4f382564b30c1b41c2">rb_io_t::fd</a></div><div class="ttdeci">int fd</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dac/io_8h_source.html#l00064">io.h:64</a></div></div> <div class="ttc" id="unistd_8h_html"><div class="ttname"><a href="../../da/d6f/unistd_8h.html">unistd.h</a></div></div> <div class="ttc" id="ruby_8c_html_ad1447518f4372828b8435ae82e48499e"><div class="ttname"><a href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a></div><div class="ttdeci">int argc</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d77/ruby_8c_source.html#l00130">ruby.c:130</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aba0717d2689eb68797421a02ab9295c6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aba0717d2689eb68797421a02ab9295c6">Qfalse</a></div><div class="ttdeci">#define Qfalse</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00433">ruby.h:433</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aed01d7f8e7222def13a869f4bc45530a"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aed01d7f8e7222def13a869f4bc45530a">rb_cIO</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cIO</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01442">ruby.h:1442</a></div></div> <div class="ttc" id="structtimeval_html"><div class="ttname"><a href="../../d1/d1b/structtimeval.html">timeval</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dbc/ossl__asn1_8c_source.html#l00016">ossl_asn1.c:16</a></div></div> <div class="ttc" id="group__defmethod_html_gaa7bed88640f01bee619f85fda09d28d7"><div class="ttname"><a href="../../d7/d19/group__defmethod.html#gaa7bed88640f01bee619f85fda09d28d7">rb_scan_args</a></div><div class="ttdeci">int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l01570">class.c:1570</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aba03c3c4ff187bbda6c4459e2dc9f6c6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a></div><div class="ttdeci">#define Qnil</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00435">ruby.h:435</a></div></div> <div class="ttc" id="wait_8c_html_af6b138ab386e620945d0aabbca345c04"><div class="ttname"><a href="../../dd/d10/wait_8c.html#af6b138ab386e620945d0aabbca345c04">io_wait_readable</a></div><div class="ttdeci">static VALUE io_wait_readable(int argc, VALUE *argv, VALUE io)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d10/wait_8c_source.html#l00105">wait.c:105</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a3c1d4bfc6a81af60bdcb48744c35f760"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="ttdeci">unsigned long VALUE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00104">ruby.h:104</a></div></div> <div class="ttc" id="wait_8c_html_a887ff962bf9167ca235be84b9f744c7e"><div class="ttname"><a href="../../dd/d10/wait_8c.html#a887ff962bf9167ca235be84b9f744c7e">ioctl_arg2num</a></div><div class="ttdeci">#define ioctl_arg2num(i)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d10/wait_8c_source.html#l00033">wait.c:33</a></div></div> <div class="ttc" id="io_8h_html_a5d928dd718bfee4b74deb87c1e82efd6"><div class="ttname"><a href="../../dc/dac/io_8h.html#a5d928dd718bfee4b74deb87c1e82efd6">rb_wait_for_single_fd</a></div><div class="ttdeci">int rb_wait_for_single_fd(int fd, int events, struct timeval *tv)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/de7/thread_8c_source.html#l03695">thread.c:3695</a></div></div> <div class="ttc" id="error_8c_html_aec0502b6d84cff19bb2071d1386ff177"><div class="ttname"><a href="../../db/dcc/error_8c.html#aec0502b6d84cff19bb2071d1386ff177">rb_sys_fail</a></div><div class="ttdeci">void rb_sys_fail(const char *mesg)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l01907">error.c:1907</a></div></div> <div class="ttc" id="io_8h_html_a88e47151779c6afecd2b4a13956d80c9"><div class="ttname"><a href="../../dc/dac/io_8h.html#a88e47151779c6afecd2b4a13956d80c9">rb_io_read_pending</a></div><div class="ttdeci">int rb_io_read_pending(rb_io_t *)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0a/io_8c_source.html#l00825">io.c:825</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ac55fae7f748afd3fc2533d0d7d06cf5a"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a></div><div class="ttdeci">#define INT2FIX(i)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00241">ruby.h:241</a></div></div> <div class="ttc" id="wait_8c_html_ad12f1626c9f6226d30513d151c7557a5"><div class="ttname"><a href="../../dd/d10/wait_8c.html#ad12f1626c9f6226d30513d151c7557a5">io_wait_writable</a></div><div class="ttdeci">static VALUE io_wait_writable(int argc, VALUE *argv, VALUE io)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d10/wait_8c_source.html#l00145">wait.c:145</a></div></div> <div class="ttc" id="io_8h_html_a728977df67c656197402bb30a14af953"><div class="ttname"><a href="../../dc/dac/io_8h.html#a728977df67c656197402bb30a14af953">rb_io_check_writable</a></div><div class="ttdeci">void rb_io_check_writable(rb_io_t *)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0a/io_8c_source.html#l00813">io.c:813</a></div></div> <div class="ttc" id="wait_8c_html_a17ed2abe545cdbfcc452a1556141fd1c"><div class="ttname"><a href="../../dd/d10/wait_8c.html#a17ed2abe545cdbfcc452a1556141fd1c">io_nread</a></div><div class="ttdeci">static VALUE io_nread(VALUE io)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d10/wait_8c_source.html#l00056">wait.c:56</a></div></div> <div class="ttc" id="wait_8c_html_a74472de5d38a419416a1855ee9e5a907"><div class="ttname"><a href="../../dd/d10/wait_8c.html#a74472de5d38a419416a1855ee9e5a907">io_ready_p</a></div><div class="ttdeci">static VALUE io_ready_p(VALUE io)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d10/wait_8c_source.html#l00081">wait.c:81</a></div></div> <div class="ttc" id="io_8h_html_a8e8bb5fe44d8006f2b4efcb8211736bb"><div class="ttname"><a href="../../dc/dac/io_8h.html#a8e8bb5fe44d8006f2b4efcb8211736bb">RB_WAITFD_IN</a></div><div class="ttdeci">#define RB_WAITFD_IN</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dac/io_8h_source.html#l00047">io.h:47</a></div></div> <div class="ttc" id="__sdbm_8c_html_a070d2ce7b6bb7e5c05602aa8c308d0c4"><div class="ttname"><a href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a></div><div class="ttdeci">#define NULL</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/db0/__sdbm_8c_source.html#l00102">_sdbm.c:102</a></div></div> <div class="ttc" id="group__defmethod_html_ga118dc7abcdb97f56fe35727ac0ff6eb8"><div class="ttname"><a href="../../d7/d19/group__defmethod.html#ga118dc7abcdb97f56fe35727ac0ff6eb8">rb_define_method</a></div><div class="ttdeci">void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l01344">class.c:1344</a></div></div> <div class="ttc" id="io_8h_html_a6b4f0c0735ecb278abd3f63059b5fc48"><div class="ttname"><a href="../../dc/dac/io_8h.html#a6b4f0c0735ecb278abd3f63059b5fc48">rb_io_check_closed</a></div><div class="ttdeci">void rb_io_check_closed(rb_io_t *)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d0a/io_8c_source.html#l00612">io.c:612</a></div></div> <div class="ttc" id="ruby_8c_html_af2efa898e9eed6fe6715279cb1ec35b0"><div class="ttname"><a href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a></div><div class="ttdeci">char ** argv</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d77/ruby_8c_source.html#l00131">ruby.c:131</a></div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="../../doxygen.png" alt="doxygen"/> </a> 1.8.14 </small></address> </body> </html>
💾 Save Changes
❌ Cancel