⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c.htm

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<a class="l" name="221">    221 </a>	<b>int</b>		<a href="/source/s?defs=ret">ret</a>;<a class="l" name="222">    222 </a><a class="l" name="223">    223 </a>	(<b>void</b>) <a href="/source/s?defs=setlocale">setlocale</a>(<a href="/source/s?defs=LC_ALL">LC_ALL</a>, <span class="s">""</span>);<a class="l" name="224">    224 </a><a class="l" name="225">    225 </a>#<b>if</b> !<b>defined</b>(<a href="/source/s?defs=TEXT_DOMAIN">TEXT_DOMAIN</a>)<a class="l" name="226">    226 </a>#<b>define</b>	<a href="/source/s?defs=TEXT_DOMAIN">TEXT_DOMAIN</a>	<span class="s">"SYS_TEST"</span><a class="l" name="227">    227 </a>#<b>endif</b><a class="l" name="228">    228 </a><a class="l" name="229">    229 </a><a class="hl" name="230">    230 </a>	(<b>void</b>) <a href="/source/s?defs=textdomain">textdomain</a>(<a href="/source/s?defs=TEXT_DOMAIN">TEXT_DOMAIN</a>);<a class="l" name="231">    231 </a><a class="l" name="232">    232 </a>	<a href="/source/s?defs=ruid">ruid</a> = <a href="/source/s?defs=getuid">getuid</a>();<a class="l" name="233">    233 </a>	<a href="/source/s?defs=cur_uid">cur_uid</a> = <a href="/source/s?defs=geteuid">geteuid</a>();<a class="l" name="234">    234 </a><a class="l" name="235">    235 </a>	<b>if</b> (<a href="/source/s?defs=check_auth">check_auth</a>(<a href="/source/s?defs=ruid">ruid</a>) != <span class="n">1</span>)  {<a class="l" name="236">    236 </a>		<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<a class="l" name="237">    237 </a>		    <span class="s">"Authorization failed, Cannot access disks.\n"</span>));<a class="l" name="238">    238 </a>		<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="239">    239 </a>	}<a class="hl" name="240">    240 </a><a class="l" name="241">    241 </a>	<b>if</b> ((<a href="/source/s?defs=cur_uid">cur_uid</a> == <span class="n">0</span>) &amp;&amp; (<a href="/source/s?defs=ruid">ruid</a> != <span class="n">0</span>)) {<a class="l" name="242">    242 </a>		<a href="/source/s?defs=priv_change_needed">priv_change_needed</a> = <span class="n">1</span>;<a class="l" name="243">    243 </a>		<a href="/source/s?defs=lower_priv">lower_priv</a>();<a class="l" name="244">    244 </a>	}<a class="l" name="245">    245 </a><a class="l" name="246">    246 </a>	<a href="/source/s?defs=vol_running">vol_running</a> = <a href="/source/s?defs=hald_running">hald_running</a>();<a class="l" name="247">    247 </a><a class="l" name="248">    248 </a>	<a href="/source/s?defs=tgtdev">tgtdev</a> = <a href="/source/s?defs=NULL">NULL</a>;<a class="l" name="249">    249 </a>	<a href="/source/s?defs=operations">operations</a> = <span class="n">0</span>;<a class="hl" name="250">    250 </a>	<a href="/source/s?defs=set_options_mask">set_options_mask</a>(&amp;<a href="/source/s?defs=specified_ops">specified_ops</a>, <span class="s">""</span>);<a class="l" name="251">    251 </a>	<a href="/source/s?defs=iflag">iflag</a> = <a href="/source/s?defs=Mflag">Mflag</a> = <a href="/source/s?defs=Lflag">Lflag</a> = <a href="/source/s?defs=lflag">lflag</a> = <a href="/source/s?defs=bflag">bflag</a> = <a href="/source/s?defs=aflag">aflag</a> = <a href="/source/s?defs=xflag">xflag</a> = <a href="/source/s?defs=cflag">cflag</a> = <span class="n">0</span>;<a class="l" name="252">    252 </a><a class="l" name="253">    253 </a>	<b>while</b> ((c = <a href="/source/s?defs=getopt">getopt</a>(<a href="/source/s?defs=argc">argc</a>, <a href="/source/s?defs=argv">argv</a>, <span class="s">"abcCd:hiLlm:MOp:s:ST:vVx"</span>)) != <a href="/source/s?defs=EOF">EOF</a>) {<a class="l" name="254">    254 </a>		<a href="/source/s?defs=add_option">add_option</a>(&amp;<a href="/source/s?defs=specified_ops">specified_ops</a>, c);<a class="l" name="255">    255 </a>		<b>switch</b> (c) {<a class="l" name="256">    256 </a>		<b>case</b> <span class="s">'a'</span>:<a class="l" name="257">    257 </a>			<a href="/source/s?defs=aflag">aflag</a> = <span class="n">1</span>;<a class="l" name="258">    258 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="l" name="259">    259 </a>			<b>break</b>;<a class="hl" name="260">    260 </a>		<b>case</b> <span class="s">'b'</span>:<a class="l" name="261">    261 </a>			<a href="/source/s?defs=bflag">bflag</a> = <span class="n">1</span>;<a class="l" name="262">    262 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="l" name="263">    263 </a>			<b>break</b>;<a class="l" name="264">    264 </a>		<b>case</b> <span class="s">'c'</span>:<a class="l" name="265">    265 </a>			<a href="/source/s?defs=cflag">cflag</a> = <span class="n">1</span>;<a class="l" name="266">    266 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="l" name="267">    267 </a>			<b>break</b>;<a class="l" name="268">    268 </a>		<b>case</b> <span class="s">'C'</span>:<a class="l" name="269">    269 </a>			<span class="c">/*<a class="hl" name="270">    270 </a>			 * cdrw now attempts to use the stated medium capacity<a class="l" name="271">    271 </a>			 * by default, so this option no longer has any effect.<a class="l" name="272">    272 </a>			 * It remains in the interface for backwards<a class="l" name="273">    273 </a>			 * compatibility only.<a class="l" name="274">    274 </a>			 */</span><a class="l" name="275">    275 </a>			<b>break</b>;<a class="l" name="276">    276 </a>		<b>case</b> <span class="s">'d'</span>:<a class="l" name="277">    277 </a>			<a href="/source/s?defs=tgtdev">tgtdev</a> = <a href="/source/s?defs=optarg">optarg</a>;<a class="l" name="278">    278 </a>			<b>break</b>;<a class="l" name="279">    279 </a>		<b>case</b> <span class="s">'h'</span>:<a class="hl" name="280">    280 </a>			<a href="/source/s?defs=print_usage">print_usage</a>(); <span class="c">/* will not return */</span><a class="l" name="281">    281 </a>			<b>break</b>;<a class="l" name="282">    282 </a>		<b>case</b> <span class="s">'i'</span>:<a class="l" name="283">    283 </a>			<a href="/source/s?defs=iflag">iflag</a> = <span class="n">1</span>;<a class="l" name="284">    284 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="l" name="285">    285 </a>			<b>break</b>;<a class="l" name="286">    286 </a>		<b>case</b> <span class="s">'L'</span>:<a class="l" name="287">    287 </a>			<a href="/source/s?defs=Lflag">Lflag</a> = <span class="n">1</span>;<a class="l" name="288">    288 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="l" name="289">    289 </a>			<b>break</b>;<a class="hl" name="290">    290 </a>		<b>case</b> <span class="s">'l'</span>:<a class="l" name="291">    291 </a>			<a href="/source/s?defs=lflag">lflag</a> = <span class="n">1</span>;<a class="l" name="292">    292 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="l" name="293">    293 </a>			<b>break</b>;<a class="l" name="294">    294 </a>		<b>case</b> <span class="s">'m'</span>:<a class="l" name="295">    295 </a>			<a href="/source/s?defs=alt_tmp_dir">alt_tmp_dir</a> = <a href="/source/s?defs=optarg">optarg</a>;<a class="l" name="296">    296 </a>			<b>break</b>;<a class="l" name="297">    297 </a>		<b>case</b> <span class="s">'M'</span>:<a class="l" name="298">    298 </a>			<a href="/source/s?defs=Mflag">Mflag</a> = <span class="n">1</span>;<a class="l" name="299">    299 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="hl" name="300">    300 </a>			<b>break</b>;<a class="l" name="301">    301 </a>		<b>case</b> <span class="s">'O'</span>:<a class="l" name="302">    302 </a>			<a href="/source/s?defs=keep_disc_open">keep_disc_open</a> = <span class="n">1</span>;<a class="l" name="303">    303 </a>			<b>break</b>;<a class="l" name="304">    304 </a>		<b>case</b> <span class="s">'p'</span>:<a class="l" name="305">    305 </a>			<a href="/source/s?defs=requested_speed">requested_speed</a> = <a href="/source/s?defs=atoi">atoi</a>(<a href="/source/s?defs=optarg">optarg</a>);<a class="l" name="306">    306 </a>			<b>break</b>;<a class="l" name="307">    307 </a>		<b>case</b> <span class="s">'s'</span>:<a class="l" name="308">    308 </a>			<a href="/source/s?defs=copy_src">copy_src</a> = <a href="/source/s?defs=optarg">optarg</a>;<a class="l" name="309">    309 </a>			<b>break</b>;<a class="hl" name="310">    310 </a>		<b>case</b> <span class="s">'S'</span>:<a class="l" name="311">    311 </a>			<a href="/source/s?defs=simulation">simulation</a>++;<a class="l" name="312">    312 </a>			<b>break</b>;<a class="l" name="313">    313 </a>		<b>case</b> <span class="s">'T'</span>:<a class="l" name="314">    314 </a>			<a href="/source/s?defs=audio_type">audio_type</a> = <a href="/source/s?defs=get_audio_type">get_audio_type</a>(<a href="/source/s?defs=optarg">optarg</a>);<a class="l" name="315">    315 </a>			<b>if</b> (<a href="/source/s?defs=audio_type">audio_type</a> == -<span class="n">1</span>) {<a class="l" name="316">    316 </a>				<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"Unknown audio type %s\n"</span>),<a class="l" name="317">    317 </a>				    <a href="/source/s?defs=optarg">optarg</a>);<a class="l" name="318">    318 </a>				<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="319">    319 </a>			}<a class="hl" name="320">    320 </a>			<b>break</b>;<a class="l" name="321">    321 </a>		<b>case</b> <span class="s">'v'</span>:<a class="l" name="322">    322 </a>			<a href="/source/s?defs=verbose">verbose</a>++;<a class="l" name="323">    323 </a>			<b>break</b>;<a class="l" name="324">    324 </a>		<b>case</b> <span class="s">'V'</span>:<a class="l" name="325">    325 </a>			<span class="c">/*<a class="l" name="326">    326 </a>			 * more verbose. this will print out debug comments<a class="l" name="327">    327 </a>			 */</span><a class="l" name="328">    328 </a><a class="l" name="329">    329 </a>			<a href="/source/s?defs=debug">debug</a>++;<a class="hl" name="330">    330 </a>			<b>break</b>;<a class="l" name="331">    331 </a>		<b>case</b> <span class="s">'x'</span>:<a class="l" name="332">    332 </a>			<a href="/source/s?defs=xflag">xflag</a>++;<a class="l" name="333">    333 </a>			<a href="/source/s?defs=operations">operations</a>++;<a class="l" name="334">    334 </a>			<b>break</b>;<a class="l" name="335">    335 </a>		<b>default</b>:<a class="l" name="336">    336 </a>			<a href="/source/s?defs=print_usage">print_usage</a>();<a class="l" name="337">    337 </a>		}<a class="l" name="338">    338 </a>	}<a class="l" name="339">    339 </a>	<b>if</b> (<a href="/source/s?defs=operations">operations</a> == <span class="n">0</span>) {<a class="hl" name="340">    340 </a>		<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"No operation specified.\n"</span>));<a class="l" name="341">    341 </a>		<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="342">    342 </a>	}<a class="l" name="343">    343 </a>	<b>if</b> (<a href="/source/s?defs=operations">operations</a> != <span class="n">1</span>) {<a class="l" name="344">    344 </a>		<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"More than one operation specified.\n"</span>));<a class="l" name="345">    345 </a>		<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="346">    346 </a>	}<a class="l" name="347">    347 </a><a class="l" name="348">    348 </a>	<b>if</b> (<a href="/source/s?defs=lflag">lflag</a>) {<a class="l" name="349">    349 </a>		<a href="/source/s?defs=check_invalid_option">check_invalid_option</a>(&amp;<a href="/source/s?defs=specified_ops">specified_ops</a>, <span class="s">"lhvV"</span>);<a class="hl" name="350">    350 </a>		<a href="/source/s?defs=list">list</a>();<a class="l" name="351">    351 </a>	}<a class="l" name="352">    352 </a><a class="l" name="353">    353 </a>	<span class="c">/*<a class="l" name="354">    354 </a>	 * we'll allow the user to specify the source device (-s) when<a class="l" name="355">    355 </a>	 *  extracting audio.<a class="l" name="356">    356 </a>	 */</span><a class="l" name="357">    357 </a><a class="l" name="358">    358 </a>	<b>if</b> (<a href="/source/s?defs=xflag">xflag</a> &amp;&amp; <a href="/source/s?defs=copy_src">copy_src</a>)<a class="l" name="359">    359 </a>		<a href="/source/s?defs=tgtdev">tgtdev</a> = <a href="/source/s?defs=copy_src">copy_src</a>;<a class="hl" name="360">    360 </a><a class="l" name="361">    361 </a>	<span class="c">/*<a class="l" name="362">    362 </a>	 * This will scan for all CD devices when xflag or Mflag<a class="l" name="363">    363 </a>	 * (extract audio, list toc) commands are used, providing<a class="l" name="364">    364 </a>	 * no CD-RW devices are found. Since these commands can

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -