CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Type FILE* en C?

AgenNgrifgateur
AgenNgrifgateur
Niveau 9
18 septembre 2018 à 17:30:40

Bonjour/bonsoir, je ne comprends pas exactement le principe de ce type. Je sais qu'il est utilisé pour ouvrir un fichier, retourné par fopen, mais j'aimerais en savoir plus.

Pourquoi ce nom est en majuscule? Pourquoi utilise-t-on un pointeur et pas le type pointé directement dans le cadre de fopen ou de toute autre manipulation des fichiers?
Merci

Matraxylophone
Matraxylophone
Niveau 7
18 septembre 2018 à 17:45:09

Je suis pas très fort en C mais je crois que si FILE est en majuscule c'est juste parce que les devs à l'époque ont décidé que sa soit comme sa ya pas vraiment de raison particulière.

Pseudo supprimé
Pseudo supprimé 18 septembre 2018 à 17:49:09

Originellement les majuscules en C étaient réservées aux valeurs d'enums et aux macros. Il y a moyen que FILE soit une macro.

Spaceflight
Spaceflight
Niveau 8
18 septembre 2018 à 18:45:12

c'est un alias d'une struct _IO_FILE (un typedef)
avant l'invention du typedef, c'était implémenté comme un define d'une autre structure ce me semble dont je me souviens plus le nom

godrik
godrik
Niveau 30
18 septembre 2018 à 20:41:37

Pourquoi utilise-t-on un pointeur et pas le type pointé directement dans le cadre de fopen ou de toute autre manipulation des fichiers?

Moralement parceque c'est un type abstrait dont l'implementation depend completement du systeme. La bonne facon d'implementer ca en C est de retourner un pointeur sur un truc pas defini et laisse la lib faire le travail.

AgenNgrifgateur
AgenNgrifgateur
Niveau 9
19 septembre 2018 à 18:46:50

Le 18 septembre 2018 à 20:41:37 godrik a écrit :

Pourquoi utilise-t-on un pointeur et pas le type pointé directement dans le cadre de fopen ou de toute autre manipulation des fichiers?

Moralement parceque c'est un type abstrait dont l'implementation depend completement du systeme. La bonne facon d'implementer ca en C est de retourner un pointeur sur un truc pas defini et laisse la lib faire le travail.

En gros c'est un type qui n'a pas besoin d'être connu par le programme lui même, ce dernier ce contente de donner son emplacement aux fonctions qui elles savent s'en servir c'est ça?

godrik
godrik
Niveau 30
19 septembre 2018 à 19:20:20

Yep

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware