unverträglicheTypen bei Zuweisung an Typ char[256] von Typ *char
-
habe folgende fehlermeldung und weiß nicht woran das liegen kann. habt ihr eine idee?
das ist das programm.
parameter die übergeben werden ist in dem fall nur prozess wichtig, welches ein int mit der prozess id ist.für die zeile 16 wird folgender fehler ausgeworfen:
unverträglicheTypen bei Zuweisung an Typ char[256] von Typ *charworan liegt das?
void list_dir(DIR *dp, int sortierung,int anzahlProzess, int prozess) { int count,vgl; count= vgl=0; struct dirent *ep; unsigned int i; char buf[5]; sortierung =0; //Ausgabe von nur einem Prozess if(prozess>0) { sprintf(buf,"%d",prozess); ep=readdir(dp); ep->d_name=buf; print_stat(ep->d_name); return; } //Ausgabe aller Prozesse while (((ep = readdir(dp)) != NULL)) { vgl=(anzahlProzess==count); if (ep->d_name == NULL) { continue; } for(i = 0; isdigit(ep->d_name[i]); i++) { // count++; } /* digits only? */ if (i == strlen(ep->d_name)) { print_stat(ep->d_name); count++; } if(vgl==1)return; } }
-
Arrays kann man in C nicht mit dem Gleichheitszeichen zuweisen.
Absolute Grundlagen in C.
Kapitel Strings/Zeichenketten nochmal durcharbeiten.
-
Ich frage mich gerade was passiert, wenn eine Prozessnummer > INT_MAX übergeben wird:
-> exceptional condition -> undefined behavour.
Im besten Fall wird int prozess negativ und nicht gelistet.
Ansonsten ist manches andere denkbar
https://www.owasp.org/index.php/Integer_overflow
http://en.wikipedia.org/wiki/Integer_overflow
http://www.integeroverflow.com/