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