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?

A Ty, jaką historyjkę sobie opowiadałeś podczas porannego podcierania ... tylniej części siadającej?

2

a przypadkiem zapis danych nie jest przekierowany w inne miejsce?

Atari: V4sa TT030 Falcon030 Mega ST Mega STe 1040 STe 520 STm 800XL 65XE Jaguar Lynx I/II 7800 Portfolio / VME: ATW800/2 Mach64 Mach32 ET4000 CrazyDots PAMNet / SM146 SC1435 SM124 / Antonia2 ATSpeedC16 TF536 PAK68/3
Megafile30 Atari1050 DDDHDD XCA12 SF314 / AVGCART SUBCART SidecarTridge ACSI2STM FujiNet LynxMultiCard SkunkBoard CosmosEx SatanDisk UltraSatan USBFloppyDriveEmulator SDrive SIO2PC Eiffel
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.