Portál AbcLinuxu, 12. května 2025 08:20

Dotaz: fopen() x g_fopen()

6.7.2006 10:23 spectrum | skóre: 29 | blog: spectrumblog
fopen() x g_fopen()
Přečteno: 290×
Odpovědět | Admin
Zdravím, jaký je rozdíl mezi těmito funkcemi? V manuálu píší, že je to to samé. Když napíšu:
FILE *soubor;

soubor = (FILE*) fopen ("soubor", "r");
je vše v pořádku. Jakmile to změním na:
FILE *soubor;

soubor = (FILE*) g_fopen ("soubor", "r");
hodí překladač chybu, no pravda, jenom warning:
warning: cast to pointer from integer of different size
Díky moc za odpověď.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 6.7.2006 10:36 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: fopen() x g_fopen()
Odpovědět | | Sbalit | Link | Blokovat | Admin
FILE *fopen   (const  char *path,     const  char *mode);
FILE *g_fopen (const gchar *filename, const gchar *mode);
Jestli char a gchar jsou stejné, tak by to mělo fungovat.
Hello world ! Segmentation fault (core dumped)
6.7.2006 10:41 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: fopen() x g_fopen()
Odpovědět | | Sbalit | Link | Blokovat | Admin

Proc to castujete? fopen i g_fopen vrati FILE* sami od sebe.

Nasledujici program se u me prelozi zcela bez chyb a varovani.

#include <glib.h>
#include <glib/gstdio.h>

int main()
{
        FILE* f = g_fopen(".bashrc", "r");

        return !f;
}
6.7.2006 10:50 spectrum | skóre: 29 | blog: spectrumblog
Rozbalit Rozbalit vše Re: fopen() x g_fopen()
Díky moc, chybělo mi tam glib/gstdio.h a já to prostě neviděl..
6.7.2006 13:37 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: fopen() x g_fopen()
Doporučuji překládat s přepínačem -Wall. Pak vás bude i céčkový překladač upozorňovat na volání nedeklarovaných funkcí. Defaultně si je totiž implicitně dodeklaruje s návratovým typem int, což může vést k záhadným chybám za běhu. Kdybyste to totiž překládal 32-bitovým překladačem, nedostal byste ani tuto chybu, protože int i FILE* by měly oba 32 bitů…

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.