URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 756
[ Назад ]

Исходное сообщение
"readdir()"

Отправлено Vorslov , 22-Май-02 12:49 
Приветствую уважаемые!
Вопрос мой комуто покажится смешным, но всеже.
Программа под FreeBSD:
void main(){
struct stat *sb;
struct dirent *dp;
DIR *d;
d=opendir("/var/log");
while((dp=readdir(d))!=NULL){
if (dp->d_name[0]=='.') continue;
cout << "Type:" << int(dp->d_type) << " ";
cout << dp->d_name << endl;
}
}

Все работает и показывает именай файлов и их тип (для папок =4 для файлов=2)
В тоже время при компиляции Linux все типы файлов выдает =0 (ASP Linux 7.1, Slackware Linux 7.0)
Помогите - умираю Ж(


Содержание

Сообщения в этом обсуждении
"RE: readdir()"
Отправлено Sasha_Ka , 22-Май-02 19:05 
>Приветствую уважаемые!
>Вопрос мой комуто покажится смешным, но
>всеже.
>Программа под FreeBSD:
>void main(){
>struct stat *sb;
>struct dirent *dp;
>DIR *d;
>d=opendir("/var/log");
>while((dp=readdir(d))!=NULL){
> if (dp->d_name[0]=='.') continue;
> cout << "Type:" << int(dp->d_type) << " ";
> cout << dp->d_name << endl;
> }
>}
>
>Все работает и показывает именай файлов
>и их тип (для папок
>=4 для файлов=2)
>В тоже время при компиляции Linux
>все типы файлов выдает =0
>(ASP Linux 7.1, Slackware Linux
>7.0)
>Помогите - умираю Ж(

Спробуй так:
if (dp->d_type == DT_CHR) cout << "File" << endl;
if (dp->d_type == DT_DIR) cout << "Dir" << endl;
а вобше глянь в sys/dirent.h там все написано что к чему ..