📄 main.c.htm
字号:
<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> < <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>(&<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>(&<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>(&<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>(&<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>(&<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>(&<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>(&<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>-><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 © 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 + -