Comment copier un fichier texte à la chaîne en C?

J'ai besoin de copier le contenu d'un fichier texte à un allouée dynamiquement tableau de caractères.

Mon problème est d'obtenir la taille du contenu du fichier; Google révèle que j'ai besoin d'utiliser fseek et ftell, mais pour que le fichier apparemment doit être ouvert en mode binaire, et qui ne donne que des ordures.

EDIT: j'ai essayé d'ouvrir en mode texte, mais j'ai la bizarre numéros. Voici le code (j'ai omis de simple vérification des erreurs pour plus de clarté):

long f_size;
char* code;
size_t code_s, result;
FILE* fp = fopen(argv[0], "r");
fseek(fp, 0, SEEK_END);
f_size = ftell(fp); /* This returns 29696, but file is 85 bytes */
fseek(fp, 0, SEEK_SET);
code_s = sizeof(char) * f_size;
code = malloc(code_s);
result = fread(code, 1, f_size, fp); /* This returns 1045, it should be the same as f_size */
L'ouverture d'un fichier en mode binaire et non de modifier son contenu. Post quel est le code que vous avez de sorte que nous pouvons repérer d'éventuels problèmes.
voir cette question: stackoverflow.com/questions/410943/...
N'est-ce pas à peu près ce que je fais?
oui. Avez-vous réellement ouvrir le fichier? Vous devez vérifier si fp n'est pas NULL.
Oui, je le fais. Le problème est que le retour des fonctions de numéros qui ne font pas de sens.

OriginalL'auteur Javier | 2009-08-16