The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Visual C++ "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Visual C++ "  +/
Сообщение от pavlinux email(ok) on 04-Дек-09, 22:48 
Есть вот такой код, написан на VC++ 8.0

Компиляция выдаёт ошибку - не определен тип DIR
функции opendir(), readdir()
и S_ISDIR

где они там живут???

void restore_db_t::disc_usage(const std::string &path)
{
    DIR *d;
    m_cur_buf = 0;

    // Считаем размер в дирректории    
    d = opendir(path.c_str());
    if (d)
    {
        struct dirent *de;
        while ( (de=readdir(d)) )
        {
            struct stat info;
            int err;
            std::string full_name = path+"/"+de->d_name;
            
            err = stat( full_name.c_str() ,&info);
            if ( (!err)&&(!S_ISDIR(info.st_mode)) )
            {            
                m_cur_buf += info.st_size;
            }
            else
            {
              ;
            }    
        }
        closedir(d);
    }
    if (( m_cur_buf > m_max_buf )&&( m_max_buf!=0 ))
    {
        m_restore_file.PubDelFirstFile();
        disc_usage(path);
    }
}

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

  • Visual C++ , parad, 01:40 , 05-Дек-09, (1)  
    • Visual C++ , pavlinux, 01:49 , 05-Дек-09, (2)  
      • Visual C++ , GreenHouse, 13:16 , 05-Дек-09, (3)  
  • Visual C++ , Vitaly_loki, 15:53 , 05-Дек-09, (4)  
    • Visual C++ , pavlinux, 16:10 , 05-Дек-09, (5)  
      • Visual C++ , GreenHouse, 16:44 , 05-Дек-09, (6)  
        • Visual C++ , pavlinux, 18:12 , 06-Дек-09, (8)  
  • Visual C++ , DeadMustdie, 20:05 , 05-Дек-09, (7)  
  • Visual C++ , аноним, 17:48 , 07-Дек-09, (9)  
    • Visual C++ , pavlinux, 18:17 , 07-Дек-09, (10)  

Сообщения по теме [Сортировка по времени | RSS]


1. "Visual C++ "  +/
Сообщение от parad (ok) on 05-Дек-09, 01:40 
man opendir
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Visual C++ "  +/
Сообщение от pavlinux email(ok) on 05-Дек-09, 01:49 
>man opendir

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\USER>man opendir
"man" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

------------------

Мне надо портировать эту хрень, и ещё 50.000 строк в УНИХ,
а прежде надо увидеть как там всё работает. dirent.h в MFC нету...


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Visual C++ "  +/
Сообщение от GreenHouse email(ok) on 05-Дек-09, 13:16 
>[оверквотинг удален]
>
>C:\Documents and Settings\USER>man opendir
>"man" не является внутренней или внешней
>командой, исполняемой программой или пакетным файлом.
>
>------------------
>
>Мне надо портировать эту хрень, и ещё 50.000 строк в УНИХ,
>а прежде надо увидеть как там всё работает. dirent.h в MFC нету...
>

Ну значит юзай MSDN, там есть описание всех виндовскиф функций
http://msdn.microsoft.com/ru-ru/default.aspx

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Visual C++ "  +/
Сообщение от Vitaly_loki (ok) on 05-Дек-09, 15:53 
>[оверквотинг удален]
>   }
>  }
>  closedir(d);
> }
>    if (( m_cur_buf > m_max_buf )&&( m_max_buf!=0 ))
> {
>  m_restore_file.PubDelFirstFile();
>  disc_usage(path);
> }
>}

Честно говоря, С++ тут не увидел... голый Си только
________
Сорри, std::string не заметил... Предыдущий ответ верный... надо полистать MSDN на сайте мелких и мягких. Там должно быть описание.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Visual C++ "  +/
Сообщение от pavlinux (ok) on 05-Дек-09, 16:10 
> надо полистать MSDN на сайте мелких и мягких.
> Там должно быть описание.

Нет там ни..уя, ламерюги там одни ...
И ещё сука, POSIX совместимыми себя зовут ...


Надо качнуть тут http://www.softagalleria.net/dirent.php
Либо руками расписать свой


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Visual C++ "  +/
Сообщение от GreenHouse email(ok) on 05-Дек-09, 16:44 
>Нет там ни..уя, ламерюги там одни ...
>И ещё сука, POSIX совместимыми себя зовут ...
>
>
>Надо качнуть тут http://www.softagalleria.net/dirent.php
>Либо руками расписать свой

Windows POSIX-совместимая - это смешно!!!
Если надо написать приложение которое работает с файловой системой под винду и одновременно под юниксы то самым рациональным пешением я вижу использование Boost.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Visual C++ "  +/
Сообщение от pavlinux (ok) on 06-Дек-09, 18:12 
>[оверквотинг удален]
>>И ещё сука, POSIX совместимыми себя зовут ...
>>
>>
>>Надо качнуть тут http://www.softagalleria.net/dirent.php
>>Либо руками расписать свой
>
>Windows POSIX-совместимая - это смешно!!!
>Если надо написать приложение которое работает с файловой системой под винду и
>одновременно под юниксы то самым рациональным пешением я вижу использование Boost.
>

Да не.... Мне надо посмотреть, работает ли оно вообще, и конвертнуть всё это дело в UNIX

Кстати, нет ли в природе конвертера VCPRO -> Makefile

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Visual C++ "  +/
Сообщение от DeadMustdie email(??) on 05-Дек-09, 20:05 
При работе в среде Win32, да ещё при использовании MSVC, следует вместо opendir/readir/closedir применять системные вызовы FindFirstFile/FindNextFile/CloseHandle.

Microsoft никогда не стремилась к совместимости своих ОС с POSIX, и полный набор стандартных вызовов POSIX в Win32 отсутствует. Есть костыли разной степени развитости (MinGW, Cygwin), но их применение сопряжено с использованием GCC как компилятора.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Visual C++ "  +/
Сообщение от аноним on 07-Дек-09, 17:48 
>Компиляция выдаёт ошибку - не определен тип DIR
>функции opendir(), readdir()
>и S_ISDIR

Собрать-то подо что надо, под *nix? Если под винду - то на другой форум. Если под nix, то:

man opendir, например:

SYNOPSIS
     #include <sys/types.h>
     #include <dirent.h>

Соответвенно читаем маны и поделючаем нужные хидеры. Определение DIR - в dirent.h, определение S_ISDIR - в sys/stat.h

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Visual C++ "  +/
Сообщение от pavlinux (ok) on 07-Дек-09, 18:17 
>[оверквотинг удален]
>другой форум. Если под nix, то:
>
>man opendir, например:
>
>SYNOPSIS
>     #include <sys/types.h>
>     #include <dirent.h>
>
>Соответвенно читаем маны и поделючаем нужные хидеры. Определение DIR - в dirent.h,
>определение S_ISDIR - в sys/stat.h

Это я знаю.
А вот венду со стороны программера видел в последний раз через SoftICE 2.6.2 (вроде), и Delphi 5.0  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру