Nowe posty

Autor Wątek: sprawdzanie istnienia pliku  (Przeczytany 6681 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
sprawdzanie istnienia pliku
« dnia: 2006-02-01, 09:01:20 »
Witam, zaobserwowałem u siebie, że podczas kopiowania na dysk całych płyt cd (np. filmów, bądź plików o rozmiarach kilkuset MB), dvdrom pracuje na pełnych obrotach i kopiuje tak do 120-150MB a potem zwlania do zera i znów się ropzędza i kopiuje około 50MB, i znów zwalnia do zera... Tak cyklicznie do skopiowania całej płyty (nie ma błędów odczytu, a plik jest skopiowany poprawnie). Dotyczy to każdej płyty CD, za każdym razem bez wyjątków. Mam również WinXP Pro i tam nie mam takich objawów. Stawiałbym na ustawienia sprzętu pod auroksem. I pytanie: co musiałbym sprawdzić i ewentualnie poprzestawiać aby cdrom działał dobrze? (mam obawy, czy napęd nie uszkodzi się fizycznie od takiej pracy).
Używam Auroksa 11.0 (wczoraj zrobiłem test i zainstalowałem na próbę mandrive2006 i nie było najmniejszych problemów).

Offline Maciej Rutecki

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2107
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #1 dnia: 2006-02-01, 10:13:35 »
2006-02-01 09:01:20 pawlojar napisał:

> Witam, zaobserwowałem u siebie, że podczas kopiowania na dysk całych płyt cd (np. filmów, bądź
 > plików o rozmiarach kilkuset MB), dvdrom pracuje na pełnych obrotach i kopiuje tak do 120-150MB
 > a potem zwlania do zera i znów się ropzędza i kopiuje około 50MB, i znów zwalnia do zera... Tak
 > cyklicznie do skopiowania całej płyty (nie ma błędów odczytu, a plik jest skopiowany
 > poprawnie). Dotyczy to każdej płyty CD, za każdym razem bez wyjątków. Mam również WinXP Pro i
 > tam nie mam takich objawów. Stawiałbym na ustawienia sprzętu pod auroksem. I pytanie: co
 > musiałbym sprawdzić i ewentualnie poprzestawiać aby cdrom działał dobrze? (mam obawy, czy napęd
 > nie uszkodzi się fizycznie od takiej pracy).
 > Używam Auroksa 11.0 (wczoraj zrobiłem test i zainstalowałem na próbę mandrive2006 i nie było
 > najmniejszych problemów).

Może coś z DMA?

Sprawdź ustawienia za pomocą hdparm (np. hdparm /dev/hda i hdparm -i /dev/hda).

Przejrzyj też dmesg czy nie ma jakiś informacji o błędach.

--
Maciek

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #2 dnia: 2006-02-02, 08:33:52 »
2006-02-01 10:13:35 Maciek_Rutecki napisał:  
 > Może coś z DMA?
 >
 > Sprawdź ustawienia za pomocą hdparm (np. hdparm /dev/hda i hdparm -i /dev/hda).
 >
 > Przejrzyj też dmesg czy nie ma jakiś informacji o błędach.
 >
 > --
 > Maciek
 >
Witam, DMA mam wyłączone i nie mogę włączyć. Otrzymuje komunikat:
\\"[root@pawellinux pawel]# /sbin/hdparm -d1 /dev/hdc

/dev/hdc:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)\\"
ale z man wynika, że nie każdy napęd to obsługuje; z tym, że te DVD to nowy napęd i chyba powinien już to obsługiwać(?).

Sprawdzenie konfiguracji dało następujące wyniki:
[root@pawellinux pawel]# /sbin/hdparm /dev/hdc

/dev/hdc:
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 HDIO_GETGEO failed: Invalid argument
[root@pawellinux pawel]# /sbin/hdparm -i /dev/hdc

/dev/hdc:

 Model=HL-DT-ST DVDRAM GSA-4167B, FwRev=DL11, SerialNo=C29C5FD46E14
 Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=0kB, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2
 AdvancedPM=no
 Drive conforms to: device does not report version:

 * signifies the current active mode

Jestem początkującym użytkownikiem linuksa i nie wiem co z tym zrobić:(
Wczoraj, dodtakowo, sprawdziłem działanie tego napędu na Suse10.0 (pierwsza dystrybucja z jaką miałem styczność) i działał bez zarzutu i kopiując osiągał prędkość o 50% większą.

Offline Ljubomir Simin

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 43
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #3 dnia: 2006-01-31, 23:51:03 »
Witam wszystkich,

Jak, w miare przenosny sposob (tzn bez korzystania z bash-a), sprawdzic czy dany plik istnieje w aktualnym katalogu?

Z gory dziekuje.

Offline Sebastian Chyba zartujecie

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 191
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #4 dnia: 2006-02-01, 08:39:19 »
2006-01-31 23:51:03 shiny napisał:

> Witam wszystkich,
 >
 > Jak, w miare przenosny sposob (tzn bez korzystania z bash-a), sprawdzic czy dany plik istnieje
 > w aktualnym katalogu?
 >
 > Z gory dziekuje.  

Żypraszam, ale o so chozi?

Jak to miałoby wyglądać? W czym się uruchamiać?
Może program w C uruchamiany z powłoki? Tylko po co wtedy program jak masz powłokę?
Może skrypt php:
if(file_exists("nazwa.pliku")) echo "Plik istnieje";
else echo "Nie ma pliku";
?>

Drog jest wiele...

Offline Ljubomir Simin

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 43
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #5 dnia: 2006-02-01, 10:54:58 »
2006-02-01 08:39:19 devilan napisał:

> 2006-01-31 23:51:03 shiny napisał:
 >
 > > Witam wszystkich,
 >  >
 >  > Jak, w miare przenosny sposob (tzn bez korzystania z bash-a), sprawdzic czy dany plik
 > istnieje
 >  > w aktualnym katalogu?
 >  >
 >  > Z gory dziekuje.  
 >
 > Żypraszam, ale o so chozi?
 >
 > Jak to miałoby wyglądać? W czym się uruchamiać?
 > Może program w C uruchamiany z powłoki? Tylko po co wtedy program jak masz powłokę?
 > Może skrypt php:
 >  > if(file_exists("nazwa.pliku")) echo "Plik istnieje";
 > else echo "Nie ma pliku";
 > ?>
 >
 > Drog jest wiele...

Do pracy programu potrzebne jest aby w katalogu roboczym  znajdowal sie ten i ten plik. Chcialbym przed proba wczytania go sprawdzic czy istenieje, aby wiedziec czy w ogole zaprzatac sobie glowe jego wczytywaniem, czy od razu wywalic blad. Rozwiazalem problem wczytujac plik zawsze, a potem sprawdzajac kod bledu, ale chcialbym wiedziec czy istnieje jakis ogolny sposob w C aby wiedziec zawczasu czy potrzebne pliki istnieja. Jakas biblioteka do manipulowania plikami, czy cos.

Pozdrawiam.


Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 10
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #6 dnia: 2006-02-01, 12:25:15 »
if (open("file", O_RDNLY | O_CREAT | O_EXCL) == EEXIST) {
   
}

Offline Sebastian Chyba zartujecie

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 191
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #7 dnia: 2006-02-01, 13:21:22 »
2006-02-01 10:54:58 shiny napisał:

> 2006-02-01 08:39:19 devilan napisał:
 >
 > > 2006-01-31 23:51:03 shiny napisał:
 >  >
 >  > > Witam wszystkich,
 >  >  >
 >  >  > Jak, w miare przenosny sposob (tzn bez korzystania z bash-a), sprawdzic czy dany
 > plik
 >  > istnieje
 >  >  > w aktualnym katalogu?
 >  >  >
 >  >  > Z gory dziekuje.  
 >  >
 >  > Żypraszam, ale o so chozi?
 >  >
 >  > Jak to miałoby wyglądać? W czym się uruchamiać?
 >  > Może program w C uruchamiany z powłoki? Tylko po co wtedy program jak masz powłokę?
 >  > Może skrypt php:
 >  >  >  > if(file_exists("nazwa.pliku")) echo "Plik istnieje";
 >  > else echo "Nie ma pliku";
 >  > ?>
 >  >
 >  > Drog jest wiele...
 >
 > Do pracy programu potrzebne jest aby w katalogu roboczym  znajdowal sie ten i ten plik.
 > Chcialbym przed proba wczytania go sprawdzic czy istenieje, aby wiedziec czy w ogole zaprzatac
 > sobie glowe jego wczytywaniem, czy od razu wywalic blad. Rozwiazalem problem wczytujac plik
 > zawsze, a potem sprawdzajac kod bledu, ale chcialbym wiedziec czy istnieje jakis ogolny sposob
 > w C aby wiedziec zawczasu czy potrzebne pliki istnieja. Jakas biblioteka do manipulowania
 > plikami, czy cos.
 >
 > Pozdrawiam.
 >
 >

To teraz mi tylko powiedz skad niby mialem zgadnac, ze w C to chciales napisac?

Mozesz napisac wlasna funkcje, ktora i tak bedzie sie opierac na kodzie bledu, ale nie bedziesz musial sobie zaprzatac tym glowy... Wykorzystaj kod podany w poscie przez kolege i bedzie gralo i buczalo :)

Offline Grzegorz Świtkowski

  • Users
  • Guru
  • *****
  • Wiadomości: 516
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #8 dnia: 2006-02-01, 13:44:08 »
>  if (open("file", O_RDNLY | O_CREAT | O_EXCL) == EEXIST) {
 >    
 > }

Ja uzylbym funkcji stat (man 2 stat). Wieksze mozliwosci, pewnosc i szybkosc.

Offline Ljubomir Simin

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 43
    • Zobacz profil
sprawdzanie istnienia pliku
« Odpowiedź #9 dnia: 2006-02-01, 17:50:49 »
> To teraz mi tylko powiedz skad niby mialem zgadnac, ze w C to chciales napisac?
 >
 > Mozesz napisac wlasna funkcje, ktora i tak bedzie sie opierac na kodzie bledu, ale nie bedziesz
 > musial sobie zaprzatac tym glowy... Wykorzystaj kod podany w poscie przez kolege i bedzie gralo
 > i buczalo :)

Faktycznie, moj post brzmi bardzo smiesznie gdy sie nie wie ze mialem na mysli C. Nie wiem jak mi umknelo, przepraszam za zamieszanie :). Wielkie dzieki wszystkim!