Ich hab gerade ein bischen
vobcopy Sourcecode gelesen. Das Projekt gibt es seit 2002 und hatte vor etwa einem Jahr seine 1.0 Release. Daraus schliesse ich dass der Auto mindestens 4 Jahre Programmiererfahrung hat und der Meinung ist das Ding sei jetzt mehr oder weniger fertig. Und dann liest man im C-Code so Sachen wie:
DVDReadBytes( dvd_file, bufferin, DVD_VIDEO_LB_LEN );
if( write( streamout, bufferin, DVD_VIDEO_LB_LEN ) < 0 ) { ...
.. unnoetig zu erwaehnen das am Return-Code von DVDReadBytes() zu erkennen waere ob ein I/O-Error aufgetreten ist. Sowas kann bei kopiergeschutzten DVDs ja schon mal passieren, hab ich wo gehoert.
Was fuer ein Glueck, an anderer Stelle findet sich:
blocks = DVDReadBlocks( dvd_file,( offset + seek_start ), file_block_count, bufferin );
if( write( streamout, bufferin, DVD_VIDEO_LB_LEN * blocks ) < 0 ) { ...
Hier gibt es zumindes vom write() einen Fehler wenn DVDReadBlocks() mal -1 zurueckliefert.
Mein absoluter Liebling bisher ist aber die Stelle an der ueberprueft wird ob es das Output-File schon gibt:
if( open( output_file, O_RDONLY ) >= 0 ) { ...
Wie gut, dass auf modernen UNIXen ein Prozess problemos tausend File-Descriptoren aufmachen kann ohne vom Betriebssystem dafuer bestraft zu werden wenn das ganze voellig ohne Grund geschieht.