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

📄 main.c.htm

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<a class="l" name="365">    365 </a>	 * be used without a CD writer.<a class="l" name="366">    366 </a>	 */</span><a class="l" name="367">    367 </a><a class="l" name="368">    368 </a>	<b>if</b> (<a href="/source/s?defs=xflag">xflag</a> || <a href="/source/s?defs=Mflag">Mflag</a>) {<a class="l" name="369">    369 </a>		<a href="/source/s?defs=ret">ret</a> = <a href="/source/s?defs=setup_target">setup_target</a>(<a href="/source/s?defs=SCAN_ALL_CDS">SCAN_ALL_CDS</a>);<a class="hl" name="370">    370 </a>	} <b>else</b> {<a class="l" name="371">    371 </a>		<a href="/source/s?defs=ret">ret</a> = <a href="/source/s?defs=setup_target">setup_target</a>(<a href="/source/s?defs=SCAN_WRITERS">SCAN_WRITERS</a>);<a class="l" name="372">    372 </a>	}<a class="l" name="373">    373 </a><a class="l" name="374">    374 </a>	<b>if</b> (<a href="/source/s?defs=ret">ret</a> == <span class="n">0</span>) {<a class="l" name="375">    375 </a><a class="l" name="376">    376 </a>		<b>if</b> (<a href="/source/s?defs=tgtdev">tgtdev</a> != <a href="/source/s?defs=NULL">NULL</a>) {<a class="l" name="377">    377 </a>			<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<a class="l" name="378">    378 </a>			    <span class="s">"Cannot find device %s.\n"</span>), <a href="/source/s?defs=tgtdev">tgtdev</a>);<a class="l" name="379">    379 </a><a class="hl" name="380">    380 </a>		}<a class="l" name="381">    381 </a><a class="l" name="382">    382 </a>		<b>if</b> (<a href="/source/s?defs=vol_running">vol_running</a>) {<a class="l" name="383">    383 </a>			<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<a class="l" name="384">    384 </a>			    <span class="s">"No CD writers found or no media in the drive.\n"</span>));<a class="l" name="385">    385 </a>		} <b>else</b> {<a class="l" name="386">    386 </a>			<b>if</b> (<a href="/source/s?defs=cur_uid">cur_uid</a> != <span class="n">0</span>) {<a class="l" name="387">    387 </a>				<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<a class="l" name="388">    388 </a>				    <span class="s">"Volume manager is not running.\n"</span>));<a class="l" name="389">    389 </a>				<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<a class="hl" name="390">    390 </a><span class="s">"Please start volume manager or run cdrw as root to access all devices.\n"</span>));<a class="l" name="391">    391 </a>			} <b>else</b> {<a class="l" name="392">    392 </a>				<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<a class="l" name="393">    393 </a>				    <span class="s">"No CD writers found.\n"</span>));<a class="l" name="394">    394 </a>			}<a class="l" name="395">    395 </a>		}<a class="l" name="396">    396 </a>		<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="397">    397 </a><a class="l" name="398">    398 </a>	} <b>else</b> <b>if</b> (<a href="/source/s?defs=ret">ret</a> != <span class="n">1</span>) {<a class="l" name="399">    399 </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 CD device found.\n"</span>));<a class="hl" name="400">    400 </a>		<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"Specify one using -d option.\n"</span>));<a class="l" name="401">    401 </a>		<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<a class="l" name="402">    402 </a>		    <span class="s">"Or use -l option to list all the CD devices found\n"</span>));<a class="l" name="403">    403 </a>		<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="404">    404 </a>	}<a class="l" name="405">    405 </a>	(<b>void</b>) <a href="/source/s?defs=check_device">check_device</a>(<a href="/source/s?defs=target">target</a>, <a href="/source/s?defs=CHECK_TYPE_NOT_CDROM">CHECK_TYPE_NOT_CDROM</a>|<a href="/source/s?defs=EXIT_IF_CHECK_FAILED">EXIT_IF_CHECK_FAILED</a>);<a class="l" name="406">    406 </a><a class="l" name="407">    407 </a>	<b>if</b> (<a href="/source/s?defs=check_device">check_device</a>(<a href="/source/s?defs=target">target</a>, <a href="/source/s?defs=CHECK_NO_MEDIA">CHECK_NO_MEDIA</a>) == <span class="n">0</span>) {<a class="l" name="408">    408 </a>		<b>int</b> <a href="/source/s?defs=retry">retry</a>;<a class="l" name="409">    409 </a>		<b>for</b> (<a href="/source/s?defs=retry">retry</a> = <span class="n">0</span>; <a href="/source/s?defs=retry">retry</a> &lt; <span class="n">5</span>; <a href="/source/s?defs=retry">retry</a>++) {<a class="hl" name="410">    410 </a>			<b>if</b> (<a href="/source/s?defs=check_device">check_device</a>(<a href="/source/s?defs=target">target</a>, <a href="/source/s?defs=CHECK_DEVICE_NOT_READY">CHECK_DEVICE_NOT_READY</a>) == <span class="n">0</span>)<a class="l" name="411">    411 </a>				<b>break</b>;<a class="l" name="412">    412 </a>			(<b>void</b>) <a href="/source/s?defs=sleep">sleep</a>(<span class="n">3</span>);<a class="l" name="413">    413 </a>		}<a class="l" name="414">    414 </a>	}<a class="l" name="415">    415 </a><a class="l" name="416">    416 </a>	<b>if</b> (<a href="/source/s?defs=aflag">aflag</a>) {<a class="l" name="417">    417 </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">"ahvSCOdpTV"</span>);<a class="l" name="418">    418 </a>		<b>if</b> (<a href="/source/s?defs=optind">optind</a> == <a href="/source/s?defs=argc">argc</a>) {<a class="l" name="419">    419 </a>			<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"No audio files specified.\n"</span>));<a class="hl" name="420">    420 </a>			<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="421">    421 </a>		}<a class="l" name="422">    422 </a>		<a href="/source/s?defs=write_audio">write_audio</a>(<a href="/source/s?defs=argv">argv</a>, <a href="/source/s?defs=optind">optind</a>, <a href="/source/s?defs=argc">argc</a>);<a class="l" name="423">    423 </a>	}<a class="l" name="424">    424 </a>	<b>if</b> (<a href="/source/s?defs=Mflag">Mflag</a>) {<a class="l" name="425">    425 </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">"MhvdV"</span>);<a class="l" name="426">    426 </a>		<a href="/source/s?defs=info">info</a>();<a class="l" name="427">    427 </a>	}<a class="l" name="428">    428 </a>	<b>if</b> (<a href="/source/s?defs=iflag">iflag</a>) {<a class="l" name="429">    429 </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">"ihvSCOdpV"</span>);<a class="hl" name="430">    430 </a>		<b>if</b> (<a href="/source/s?defs=optind">optind</a> == (<a href="/source/s?defs=argc">argc</a> - <span class="n">1</span>)) {<a class="l" name="431">    431 </a>			<a href="/source/s?defs=image_file">image_file</a> = <a href="/source/s?defs=argv">argv</a>[<a href="/source/s?defs=optind">optind</a>];<a class="l" name="432">    432 </a>			<a href="/source/s?defs=write_image">write_image</a>();<a class="l" name="433">    433 </a>		}<a class="l" name="434">    434 </a>		<b>if</b> (<a href="/source/s?defs=optind">optind</a> == <a href="/source/s?defs=argc">argc</a>)<a class="l" name="435">    435 </a>			<a href="/source/s?defs=write_image">write_image</a>();<a class="l" name="436">    436 </a>		<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"Command line parsing error.\n"</span>));<a class="l" name="437">    437 </a>		<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"Only one image-file can be specified.\n"</span>));<a class="l" name="438">    438 </a>		<a href="/source/s?defs=exit">exit</a>(<span class="n">1</span>);<a class="l" name="439">    439 </a>	}<a class="hl" name="440">    440 </a>	<b>if</b> (<a href="/source/s?defs=bflag">bflag</a>) {<a class="l" name="441">    441 </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">"bhvdV"</span>);<a class="l" name="442">    442 </a>		<b>if</b> (<a href="/source/s?defs=optind">optind</a> != (<a href="/source/s?defs=argc">argc</a> - <span class="n">1</span>)) {<a class="l" name="443">    443 </a>			<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"Command line parsing error.\n"</span>));<a class="l" name="444">    444 </a>			<a href="/source/s?defs=print_usage">print_usage</a>();<a class="l" name="445">    445 </a>		}<a class="l" name="446">    446 </a>		<a href="/source/s?defs=blanking_type">blanking_type</a> = <a href="/source/s?defs=argv">argv</a>[<a href="/source/s?defs=argc">argc</a> - <span class="n">1</span>];<a class="l" name="447">    447 </a>		<a href="/source/s?defs=blank">blank</a>();<a class="l" name="448">    448 </a>	}<a class="l" name="449">    449 </a>	<b>if</b> (<a href="/source/s?defs=xflag">xflag</a>) {<a class="hl" name="450">    450 </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">"xhpvdsTV"</span>);<a class="l" name="451">    451 </a>		<b>if</b> (<a href="/source/s?defs=optind">optind</a> != (<a href="/source/s?defs=argc">argc</a> - <span class="n">2</span>)) {<a class="l" name="452">    452 </a>			<a href="/source/s?defs=err_msg">err_msg</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"Command line parsing error.\n"</span>));<a class="l" name="453">    453 </a>			<a href="/source/s?defs=print_usage">print_usage</a>();<a class="l" name="454">    454 </a>		}<a class="l" name="455">    455 </a>		<a href="/source/s?defs=extract_track_no">extract_track_no</a> = <a href="/source/s?defs=atoi">atoi</a>(<a href="/source/s?defs=argv">argv</a>[<a href="/source/s?defs=argc">argc</a> - <span class="n">2</span>]);<a class="l" name="456">    456 </a>		<a href="/source/s?defs=extract_file">extract_file</a> = <a href="/source/s?defs=argv">argv</a>[<a href="/source/s?defs=argc">argc</a> - <span class="n">1</span>];<a class="l" name="457">    457 </a>		<a href="/source/s?defs=extract_audio">extract_audio</a>();<a class="l" name="458">    458 </a>	}<a class="l" name="459">    459 </a>	<b>if</b> (<a href="/source/s?defs=cflag">cflag</a>) {<a class="hl" name="460">    460 </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">"chvSCdpmsV"</span>);<a class="l" name="461">    461 </a>		<a href="/source/s?defs=copy_cd">copy_cd</a>();<a class="l" name="462">    462 </a>	}<a class="l" name="463">    463 </a><a class="l" name="464">    464 </a>	<span class="c">/*<a class="l" name="465">    465 </a>	 * Open a closed disk, we do this by erasing the track tail<a class="l" name="466">    466 </a>	 * and then re-finalizing with an open leadout.<a class="l" name="467">    467 </a>	 */</span><a class="l" name="468">    468 </a>	<b>if</b> (<a href="/source/s?defs=Lflag">Lflag</a>) {<a class="l" name="469">    469 </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">"LvdV"</span>);<a class="hl" name="470">    470 </a>		(<b>void</b>) <a href="/source/s?defs=check_device">check_device</a>(<a href="/source/s?defs=target">target</a>, <a href="/source/s?defs=CHECK_NO_MEDIA">CHECK_NO_MEDIA</a> |<a class="l" name="471">    471 </a>		    <a href="/source/s?defs=CHECK_DEVICE_NOT_READY">CHECK_DEVICE_NOT_READY</a> | <a href="/source/s?defs=EXIT_IF_CHECK_FAILED">EXIT_IF_CHECK_FAILED</a>);<a class="l" name="472">    472 </a><a class="l" name="473">    473 </a>		<span class="c">/* no need to erase blank media */</span><a class="l" name="474">    474 </a>		<b>if</b> (!<a href="/source/s?defs=check_device">check_device</a>(<a href="/source/s?defs=target">target</a>, <a href="/source/s?defs=CHECK_MEDIA_IS_NOT_BLANK">CHECK_MEDIA_IS_NOT_BLANK</a>))<a class="l" name="475">    475 </a>			<a href="/source/s?defs=exit">exit</a>(<span class="n">0</span>);<a class="l" name="476">    476 </a><a class="l" name="477">    477 </a>		<a href="/source/s?defs=blanking_type">blanking_type</a> = <span class="s">"leadout"</span>;<a class="l" name="478">    478 </a>		<a href="/source/s?defs=blank">blank</a>();<a class="l" name="479">    479 </a><a class="hl" name="480">    480 </a>		<a href="/source/s?defs=write_init">write_init</a>(<a href="/source/s?defs=TRACK_MODE_DATA">TRACK_MODE_DATA</a>);<a class="l" name="481">    481 </a>		(<b>void</b>) <a href="/source/s?defs=close_track">close_track</a>(<a href="/source/s?defs=target">target</a>-&gt;<a href="/source/s?defs=d_fd">d_fd</a>, <span class="n">0</span>, <span class="n">1</span>, <span class="n">1</span>);<a class="l" name="482">    482 </a>		(<b>void</b>) <a href="/source/s?defs=finalize">finalize</a>(<a href="/source/s?defs=target">target</a>);<a class="l" name="483">    483 </a>		(<b>void</b>) <a href="/source/s?defs=printf">printf</a>(<a href="/source/s?defs=gettext">gettext</a>(<span class="s">"done.\n"</span>));<a class="l" name="484">    484 </a>		<a href="/source/s?defs=exit">exit</a>(<span class="n">0</span>);<a class="l" name="485">    485 </a>	}<a class="l" name="486">    486 </a>	<b>return</b> (<span class="n">0</span>);<a class="l" name="487">    487 </a>}<a class="l" name="488">    488 </a></pre></div><div id="Footer"><p class="Center"><a href="http://www.opensolaris.org/os/project/opengrok/"><img src="/source/default/img/servedby.png" alt="Served by OpenGrok" title="Served by OpenGrok"/></a></p><p class="Center"><a href="http://www.opensolaris.org/os/tou/">Terms of Use</a> |<a href="http://www.sun.com/privacy/">Privacy</a> |<a href="http://www.opensolaris.org/os/trademark/">Trademarks</a> |<a href="http://www.opensolaris.org/os/copyrights/">Copyright Policy</a> |<a href="http://www.opensolaris.org/os/site_guidelines/">Site Guidelines</a> |<a href="http://www.opensolaris.org/os/about/help/">Help</a><br />Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.<br />Copyright &copy; 1995-2008 Sun Microsystems, Inc.<br /></p><script type="text/javascript" src="http://www.opensolaris.org/js/s_code_remote.js"></script></div></body></html>

⌨️ 快捷键说明

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