PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CPU Info auslesen und Speicherzugriffsverletzung



Magicmixer
19-10-2004, 06:36
Hallo ich hab ein kleines Programm geschrieben mit dem ich die CPU Typ ausgeben kann, aber ich bekomme einen Speicherzugriffsfehler zurück, kann mir jemand helfen?
Das Programm sieht so aus:
GetCPUInfo(Result)
{
char strInput;
InputFile = fopen("/proc/cpuinfo","r");
fscanf(InputFile,"%c",strInput);
Result = printf("%c", strInput);
fclose(InputFile);
return Result;
}

Boron
19-10-2004, 08:30
Ich mag mich täuschen, aber funktionieren fscanf() und printf() normalerweise mit char*? du benutzt einen char!

7.e.Q
22-10-2004, 06:45
Richtig, das funktioniert so nicht.

Versuch's mal so:


GetCPUInfo(Result)
{
char strInput;
InputFile = fopen("/proc/cpuinfo","r");
fscanf(InputFile,"%s",strInput);
Result = printf("%s", strInput);
fclose(InputFile);
return Result;
}


btw: warum gibst du das Resultat der printf-Anweisung zurück?

anda_skoa
22-10-2004, 16:38
Und wo hast du da jetzt deiner Meinung nach den von Boron vorgeschlagenen char*?

Ciao,
_

janosch
24-10-2004, 22:11
Moin!



GetCPUInfo(Result)
{
char *strInput;
InputFile = fopen("/proc/cpuinfo","r");
fscanf(InputFile,"%s",&strInput);
Result = printf("%s", strInput);
fclose(InputFile);
return Result;
}

wraith
24-10-2004, 22:27
GetCPUInfo(Result)
{
char *strInput;
InputFile = fopen("/proc/cpuinfo","r");
fscanf(InputFile,"%s",&strInput);
....
}

Herrenloser Zeiger auf char, und nicht die Adresse des Zeigers übergeben.


...
char strInput[256];
InputFile = fopen("/proc/cpuinfo","r");
fscanf(InputFile,"%255s",strInput);