Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6306
Последний выпуск: 19.06.2015

Просмотр содержимого каталога.

4.1K
21 января 2005 года
_voron
19 / / 07.12.2003
Как вывести на экран файлы содержащиеся в каталоге? Такой код не работает:
 
Код:
void print_dir(char *dir_name){
  direct dir;
  int f_dir, count;
  f_dir = open(dir_name, O_RDONLY, 0);
  count = read(f_dir, (char *)&dir, sizeof(dir));
  printf("count = %d\n", count);
  close(f_dir);
}

Упорно выводит "count = -1". Кто-нибудь знает в чем тут дело? Если не сложно киньте работающий исходник.
З.Ы. Прога запускается с привелегиями root-а.
243
22 января 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by _voron
Как вывести на экран файлы содержащиеся в каталоге?


Например так:

Код:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>

void dir(char dir[]);

int main(int ac, char *av[])
{
  if(ac==1)
    dir(".");
  else
    while(--ac)
    {
      printf("%s: \n",*++av);
      dir(*av);
    }
  return EXIT_SUCCESS;
}

void dir(char dir[])
{
 DIR *dir_ptr;
 struct dirent *direntp;
 if((dir_ptr=opendir(dir))==NULL)
  fprintf(stderr,"ls: cannot open %s\n",dir);
 else
 {
   while((direntp=readdir(dir_ptr))!=NULL)
    printf("%s\n",direntp->d_name);
    closedir(dir_ptr);
  }
}

У меня работает.
Цитата:

З.Ы. Прога запускается с привелегиями root-а.


А вот это - лишнее, если ты конечно не задаешь каталог-аргумент с root'овыми правами доступа.

4.1K
28 января 2005 года
_voron
19 / / 07.12.2003
Спасибо! Теперь пашет.
З.Ы. А то что под root-ом запускаюсь специально написал, чтобы вопрос о правах доступа сразу отпал.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог