Confession: Je suis un novice.En ce qui concerne stdio.h
Question: Je vérifiais stdio.h
, mais je n'ai pas pu trouver la définition de la fonction fopen
. Quelqu'un peut-il dire où je peux trouver la définition?
concerne,
bug.
Confession: Je suis un novice.En ce qui concerne stdio.h
Question: Je vérifiais stdio.h
, mais je n'ai pas pu trouver la définition de la fonction fopen
. Quelqu'un peut-il dire où je peux trouver la définition?
concerne,
bug.
Si vous utilisez Linux ou Unix, vous pouvez le trouver avec:
man fopen
Sinon, google pour man fopen et vous trouverez.
Vous pouvez utiliser man
pour à peu près n'importe quelle fonction de bibliothèque standard.
Ce n'est pas la réponse qu'il cherche. Il veut trouver la ligne dans stdio.h où la fonction fopen est définie. –
Ce n'est pas ce qu'il a dit. Il a demandé, "* Est-ce que quelqu'un peut dire s'il vous plaît où puis-je trouver la définition? *" –
extern FILE *fopen (__const char *__restrict __filename,
__const char *__restrict __modes) __wur;
Comme vous l'avez dit, dans stdio.h
.
Où se trouve probablement 'stdio.h'? –
Sur les systèmes UNIX, dans '/ usr/include'. –
alternativement, vous pouvez aller sur http://cplusplus.com/ sous la référence -> C Library -> cstdio (stdio.h)
Ceci est une référence pour stdio.h, mais il ne répond pas à la question "où puis-je trouver la définition de fopen". Il regarde le code source, essayant de trouver une ligne de code. –
la déclaration devrait être dans stdio.h (afaik la norme l'exige), mais ce n'est pas probablement que vous allez trouver la définition il *. Si vous utilisez un os open source, il contient probablement des paquets contenant le code source (contenant la définition) que vous pouvez télécharger. Sinon, désolé, aucune définition disponible.
* en supposant que l'auteur considère définition signifie la mise en œuvre effective alors que déclaration se réfère plutôt fonctionner prototype
Même sous Windows, le code source du CRT est disponible si Visual Studio est installé. Par exemple, la source de 'fopen' peut être trouvée dans C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ crt \ src \ fopen.c, ou similaire. –
vous avez raison, mais je pense que vous obtenez seulement si vous achetez VS, non? Ou est-il disponible avec les versions Express? – stijn
J'ai trouvé sourcecode here. ne suis pas un C-Coder afin de vérifier le résultat par vous-même. Pour autant que je sache, cela ressemble à une implémentation réelle. Mais même si ce n'est pas la "vraie" implémentation, elle peut au moins donner des biches aux yeux d'apprentissage. Il devrait donc être utile de connaître ce fichier.
Vous pouvez trouver les définitions de fonctions stdio.h ici: http://en.wikipedia.org/wiki/Stdio.h
Et voici un article sur le fichier C io: http://en.wikipedia.org/wiki/C_file_input/output
http://ftp.gnu.org/gnu/glibc/ Vous y trouverez c std. code source bibliothèque
La mise en œuvre de fopen()
pour OS X (qui est ce que le questionneur demande au sujet) est disponible sur opensource.apple.com:
http://opensource.apple.com/source/Libc/Libc-498.1.7/stdio/fopen-fbsd.c
Je suis curieux, cependant, à pourquoi vous le cherchez; Une partie de l'intérêt des bibliothèques est que vous n'avez pas besoin de connaître les détails de leur fonctionnement pour pouvoir les utiliser efficacement - vous devez seulement savoir comment les lier et quelles sont les fonctions définies.
que le compilateur et le système d'exploitation utilisent-ils? – Anycorn
Voulez-vous dire la 'déclaration' de la fonction fopen? – Bill
os: mac os x 10,5,8; gcc 4.0.1 – babon