Kezdőlap › Fórumok › Programozás › Szegmens hiba – de miért?
- This topic has 76 hozzászólás, 6 résztvevő, and was last updated 17 years, 1 months telt el by
pointux.
-
SzerzőBejegyzés
-
2008-06-17-18:40 #2164578
Ez is horror:
Code:char *nc_filetype (struct stat *st) {
char *result;result = malloc(30);
sprintf(result,””);
if (S_ISDIR(st->st_mode)) {
sprintf(result,”könyvtár”);
} else if (S_ISCHR(st->st_mode)) {
sprintf(result,”karakter eszköz”);
} else if (S_ISBLK(st->st_mode)) {
sprintf(result,”blokkeszköz”);
} else if (S_ISREG(st->st_mode)) {
sprintf(result,”szabályos”);
} else if (S_ISFIFO(st->st_mode)) {
sprintf(result,”fifo”);
} else if (S_ISLNK(st->st_mode)) {
sprintf(result,”link”);
} else if (S_ISSOCK(st->st_mode)) {
sprintf(result,”socket”);
} else sprintf(result,”pass”);return result;
}Így jobb:
Code:const char *nc_filetype (struct stat *st) {
if (S_ISDIR(st->st_mode)) {
return „könyvtár”;
} else if (S_ISCHR(st->st_mode)) {
return „karakter eszköz”;
} else if (S_ISBLK(st->st_mode)) {
return „blokkeszköz”;
} else if (S_ISREG(st->st_mode)) {
return „szabályos”;
} else if (S_ISFIFO(st->st_mode)) {
return „fifo”;
} else if (S_ISLNK(st->st_mode)) {
return „link”;
} else if (S_ISSOCK(st->st_mode)) {
return „socket”;
}return „pass”;
}2008-06-17-18:40 #2164579Ez is horror:
Code:char *nc_filetype (struct stat *st) {
char *result;result = malloc(30);
sprintf(result,””);
if (S_ISDIR(st->st_mode)) {
sprintf(result,”könyvtár”);
} else if (S_ISCHR(st->st_mode)) {
sprintf(result,”karakter eszköz”);
} else if (S_ISBLK(st->st_mode)) {
sprintf(result,”blokkeszköz”);
} else if (S_ISREG(st->st_mode)) {
sprintf(result,”szabályos”);
} else if (S_ISFIFO(st->st_mode)) {
sprintf(result,”fifo”);
} else if (S_ISLNK(st->st_mode)) {
sprintf(result,”link”);
} else if (S_ISSOCK(st->st_mode)) {
sprintf(result,”socket”);
} else sprintf(result,”pass”);return result;
}Így jobb:
Code:const char *nc_filetype (struct stat *st) {
if (S_ISDIR(st->st_mode)) {
return „könyvtár”;
} else if (S_ISCHR(st->st_mode)) {
return „karakter eszköz”;
} else if (S_ISBLK(st->st_mode)) {
return „blokkeszköz”;
} else if (S_ISREG(st->st_mode)) {
return „szabályos”;
} else if (S_ISFIFO(st->st_mode)) {
return „fifo”;
} else if (S_ISLNK(st->st_mode)) {
return „link”;
} else if (S_ISSOCK(st->st_mode)) {
return „socket”;
}return „pass”;
}2008-06-17-18:42 #2164580Na, akkor megint tanultam valamit. Akkor megérte eddig fennmaradnom 🙂
2008-06-17-18:42 #2164581Na, akkor megint tanultam valamit. Akkor megérte eddig fennmaradnom 🙂
2008-06-17-18:52 #2164582Code:const char *nc_filetype (struct stat *st) {
if (S_ISDIR(st->st_mode)) {
return „könyvtár”;
} else if (S_ISCHR(st->st_mode)) {
return „karakter eszköz”;
} else if (S_ISBLK(st->st_mode)) {
return „blokkeszköz”;
} else if (S_ISREG(st->st_mode)) {
return „szabályos”;
} else if (S_ISFIFO(st->st_mode)) {
return „fifo”;
} else if (S_ISLNK(st->st_mode)) {
return „link”;
} else if (S_ISSOCK(st->st_mode)) {
return „socket”;
}return „pass”;
}Még ez is túlzás, mert a return után nincs értelme az else-nek sem.
Code:const char *nc_filetype ( struct stat *st ) {
if ( S_ISDIR ( st->st_mode ) )
return „könyvtár”;
if ( S_ISCHR ( st->st_mode ) )
return „karakter eszköz”;
if ( S_ISBLK ( st->st_mode ) )
return „blokkeszköz”;
if ( S_ISREG ( st->st_mode ) )
return „szabályos”;
if ( S_ISFIFO ( st->st_mode ) )
return „fifo”;
if ( S_ISLNK ( st->st_mode ) )
return „link”;
if ( S_ISSOCK ( st->st_mode ) )
return „socket”;return „pass”;
}2008-06-17-18:52 #2164583Code:const char *nc_filetype (struct stat *st) {
if (S_ISDIR(st->st_mode)) {
return „könyvtár”;
} else if (S_ISCHR(st->st_mode)) {
return „karakter eszköz”;
} else if (S_ISBLK(st->st_mode)) {
return „blokkeszköz”;
} else if (S_ISREG(st->st_mode)) {
return „szabályos”;
} else if (S_ISFIFO(st->st_mode)) {
return „fifo”;
} else if (S_ISLNK(st->st_mode)) {
return „link”;
} else if (S_ISSOCK(st->st_mode)) {
return „socket”;
}return „pass”;
}Még ez is túlzás, mert a return után nincs értelme az else-nek sem.
Code:const char *nc_filetype ( struct stat *st ) {
if ( S_ISDIR ( st->st_mode ) )
return „könyvtár”;
if ( S_ISCHR ( st->st_mode ) )
return „karakter eszköz”;
if ( S_ISBLK ( st->st_mode ) )
return „blokkeszköz”;
if ( S_ISREG ( st->st_mode ) )
return „szabályos”;
if ( S_ISFIFO ( st->st_mode ) )
return „fifo”;
if ( S_ISLNK ( st->st_mode ) )
return „link”;
if ( S_ISSOCK ( st->st_mode ) )
return „socket”;return „pass”;
}2008-06-17-19:04 #2164584Ha már megemlítetted a sebességet, akkor legyen már gyors is:
Code:const char *nc_filetype ( struct stat *st ) {
switch ( st->st_mode & S_IFMT ) {
case S_IFDIR:
return „könyvtár”;
case S_IFCHR:
return „karakter eszköz”;
case S_IFBLK:
return „blokkeszköz”;
case S_IFREG:
return „szabályos”;
case S_IFIFO:
return „fifo”;
case S_IFLNK:
return „link”;
case S_IFSOCK:
return „socket”;
default:
break;
}
return „pass”;
}2008-06-17-19:04 #2164585Ha már megemlítetted a sebességet, akkor legyen már gyors is:
Code:const char *nc_filetype ( struct stat *st ) {
switch ( st->st_mode & S_IFMT ) {
case S_IFDIR:
return „könyvtár”;
case S_IFCHR:
return „karakter eszköz”;
case S_IFBLK:
return „blokkeszköz”;
case S_IFREG:
return „szabályos”;
case S_IFIFO:
return „fifo”;
case S_IFLNK:
return „link”;
case S_IFSOCK:
return „socket”;
default:
break;
}
return „pass”;
}2008-06-17-19:11 #2164586Azt hiszem a stat-ban is ezt a példát adja… vagy valami ilyesmit. 🙂
Igen, csak ott közvetlenül switch-ben printf-fel.
Hát igen érdemes elolvasni – ugye – a man oldalakat. :)))2008-06-17-19:11 #2164587Azt hiszem a stat-ban is ezt a példát adja… vagy valami ilyesmit. 🙂
Igen, csak ott közvetlenül switch-ben printf-fel.
Hát igen érdemes elolvasni – ugye – a man oldalakat. :))) -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz