J'essayais de lire le fichier proc/stat mais je ne pouvais pas cependant je suis sûr que mon code fonctionne parce que j'ai essayé de lire d'autres fichiers et cela a fonctionné parfaitement .. voici la Code:Impossible de lire le fichier sous Linux
#include <stdio.h>
#include <stdlib.h> // for the malloc
int main (int argc,char *argv[])
{
char *file_name = "/proc/stat";
char *contents;
FILE *file;
int filesize = 0;
file = fopen(file_name, "r");
if(file != NULL)
{
//get the file size
fseek(file, 0, SEEK_END);
filesize = ftell(file);
fseek(file, 0, SEEK_SET);
printf("the file size is: %d\n", filesize);
contents = (char *)malloc(filesize+1); // allocate memory
fread(contents, filesize,1,file);
contents[filesize]=0;
fclose(file);
printf("File has been read: %s \n", contents);
}
else
{
printf("the file name %s doesn't exits", file_name);
}
return 0;
}
Remplacer 'printf ("le nom du fichier% s ne pas sorties", nom_fichier);' avec 'perror (nom_fichier); ' –
Si vous ne vérifiez pas les valeurs de retour de toutes les fonctions d'E/S que vous utilisez et réagissez en fonction d'elles, vous ne serez jamais en mesure de comprendre pourquoi votre code échoue. Faites-vous une faveur et ** toujours ** vérifiez tous. – Mat
Ne pas lancer malloc. Si vous obtenez des erreurs lorsque vous supprimez la distribution de malloc dans ce code, c'est parce que vous utilisez un compilateur C++. Si vous voulez utiliser C++, utilisez C++ 'new'. Sinon, utilisez un compilateur C. Il est impossible de vous restreindre à un sous-ensemble commun des deux langues; Il y a des caractéristiques de C que C++ n'a pas adoptées dans les 10 dernières années utilisées dans les bibliothèques C communes d'aujourd'hui. Vous ne pouvez pas les compiler avec un compilateur C++. Allez-vous perdre des heures de votre temps à convertir ce code en un code compatible C++ légèrement moins lisible pour compiler en C++? Utilisez simplement un compilateur C. – Sebivor