kategoria: ANSI C
[#1] [C] Jak sprawdzic czy plik nie istnieje?
Problem: chce sprawdzic czy plik o danej nazwie na danym urzadzeniu nie istnieje.
Ale chce to zrobic po cichu, tak zeby mi nie wyskoczyl zaden requester typu:

"Nie ma dysku w urzadzeniu ble0:"

lub

"Umiesc wolumen jakis0: w dowolnym napedzie"

Niestety, fopen() wygeneruje z automatu jeden z nich.
[wyróżniony] [#2] Re: [C] Jak sprawdzic czy plik nie istnieje?

@Phibrizzo, post #1

https://www.ppa.pl/forum/programowanie/15692/jak-sprawdzic-czy-naped-jest-odczytywalny-zanim-uzyjemy-na-nim-funkcji-lock#m190734

To wyłącza requestery systemowe gdy otwieramy nieistniejący plik (z urządzenia którego nie ma).

Ostatnia aktualizacja: 09.02.2025 00:59:54 przez vojo
2
[#3] Re: [C] Jak sprawdzic czy plik nie istnieje?

@Phibrizzo, post #1

http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_3._guide/node0196.html
1
[#4] Re: [C] Jak sprawdzic czy plik nie istnieje?

@vojo, post #2

Dzieki :)
Dziala jak trzeba.

Patrzac po dacie postu z linka to stary problem jest :)
[#5] Re: [C] Jak sprawdzic czy plik nie istnieje?

@Mirq, post #3

a co w przypadku gdy nie kompilujesz od nowa kodu?
tylko chcesz to wykorzystać bezpośrednio pod workbench em?
[#6] Re: [C] Jak sprawdzic czy plik nie istnieje?

@Phibrizzo, post #4

Taaa, jakiś czas temu też z tym walczyłem :)
[#7] Re: [C] Jak sprawdzic czy plik nie istnieje?

@Phibrizzo, post #1

Rety, nigdy mi requester nie wyskoczył w takim wypadku. Ale ręczyć mogę tylko za MorphOS i macOS, iOS, innych systemów od kilkunastu lat nie dotknąłem. Od wielu lat mam to zakopane gdzieś na dnie "silnika" i na co dzień tego nie widzę. Ale zerknąłem do wnętrzności swoich tworów i widzę, że teraz do sprawdzania czy plik instnieje używam funkcji stat() (sys/stat.h).

Ostatnia aktualizacja: 09.02.2025 17:44:26 przez MDW
[#8] Re: [C] Jak sprawdzic czy plik nie istnieje?

@MDW, post #7

Dla OS 3.x w AmigaE można użyć wbudowanej w język funkcji FileLength() :


FileLength(string)
Returns the length of the file named in string, or -1 if the file doesn't exist or an error occurred. Notice that you don't need to Open the file or have a filehandle, you just supply the filename.
1
[#9] Re: [C] Jak sprawdzic czy plik nie istnieje?

@MDW, post #7

do sprawdzania czy plik instnieje używam funkcji stat() (sys/stat.h).

Z ciekawosci sprawdzilem czy SAS/C to umie.
Okazalo sie inklud o podanej nazwie istnieje. Tyle ze pusty...
[#10] Re: [C] Jak sprawdzic czy plik nie istnieje?

@Phibrizzo, post #9

SAS to umie, a plik sys/stat.h nie jest pusty... zauwazyles #include <stat,h> ?:)
[#11] Re: [C] Jak sprawdzic czy plik nie istnieje?

@docent, post #10

Faktycznie. Komentarz w tym pliku zajmuje wiecej miejsca niz ten wpis ktory jest jedyny.
Dlatego go przeoczylem. Za szybko popatrzylem.
[#12] Re: [C] Jak sprawdzic czy plik nie istnieje?

@vojo, post #8

Dla OS 3.x w AmigaE można użyć wbudowanej w język funkcji FileLength() :

Jeżeli ktoś pisze bez zamiaru portowania na inne systemy to pewnie, że lepiej użyć czegoś takiego. OK
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem