1 Ostatnio edytowany przez jury (2020-06-12 10:41:29)

int loguj(int wskaznik)
{
    FILE *plik;
    plik = fopen("plik.log", "a");
    fprintf(plik, "%d\n", wskaznik);
    fclose(plik);
    return 0;    
}

Prosta funkcja dopisująca inta do pliku.
Jeśli stworzę czyste źródło w którym jest zadeklarowana tylko ta funkcja i w main'ie jej wywołanie, to na Falconie działa, tzn tworzy plik i dopisuje do niego przesłanego inta.
Natomiast jak dodałem tą funkcję do jakiegoś większego pliku (prościutka gra open source) to tylko tworzy plik i nic w nim nie zapisuje.
Tu jest wycinek z definicji tej funkcji i użycia w main'ie:

...
int loguj(int wskaznik)
{
    FILE *plik;
    plik = fopen("griffon.log", "a");
    fprintf(plik, "%d\n", wskaznik);
    fclose(plik);
    return 0;    
}

#undef main
int main()
{
loguj(100);
    sys_initialize();
    game_showlogos();
    game_main();

    return 0;
}

Natomiast jeśli skompilowałem to natywnie pod linuksem, to wszystko jest OK, plik się tworzy i przesłany int dopisuje się w pliku.
Co może powodować, że nie działa to na Falconie?

2

a przypadkiem zapis danych nie jest przekierowany w inne miejsce?

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

3

sprawdz jeszcze sciezke do ktorej zapisujesz, byc moze spodziewasz sie pliku w innym miejscu niz oin faktycznie jest zapisywany.
Moze tymczasowo wskaz mu bezwzgledna sciezke do pliku gdzie ma zapisywac.