Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2010, 12:58   #1
K1rsan
 
Регистрация: 28.05.2010
Сообщений: 7
Сообщение Время в LINUX(C/C++)

qq all!!!
буду признателен если кто нибудь поможет "новичку" исправить, а точнее модифицировать программу, которая каждые 2 секунды проверяет - не изменилось ли содержимое текущего каталога:

Код:
#include <sys/types.h>
    #include <sys/stat.h>
    extern char *ctime();
    main(){
       time_t last; struct stat st;
       for( stat(".", &st), last=st.st_mtime; ; sleep(2)){
            stat(".", &st);
            if(last != st.st_mtime){
               last  = st.st_mtime;
    printf("Был создан или удален какой-то файл: %s",
                       ctime(&last));
            }
       }
    }
Мне же нужно чтобы она сообщала какое имя (имена) было удалено или создано (для этого надо при запуске программы прочитать и запомнить содержимое каталога, а при обнаружении модификации - перечитать каталог и сравнить его с прежним содержимым)

буду плагодарен любой помощи!!

Последний раз редактировалось K1rsan; 28.05.2010 в 13:03.
K1rsan вне форума Ответить с цитированием
Старый 28.05.2010, 15:45   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Вот Вам код, как читать каталог, дальше уже наверное справитесь
Код:
#include <dirent.h>
...
DIR *dir_ptr; 
struct dirent *direntp;
dir_ptr = opendir(".");
while ((direntp = readdir(dir_ptr)) != NULL)
  printf("%s\n",direntp->d_name);
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 29.05.2010, 15:38   #3
K1rsan
 
Регистрация: 28.05.2010
Сообщений: 7
По умолчанию

Greblin пожалуйста напишите всю программу, если вам не сложно!
K1rsan вне форума Ответить с цитированием
Старый 29.05.2010, 16:42   #4
K1rsan
 
Регистрация: 28.05.2010
Сообщений: 7
По умолчанию

сделал так

Код:
#include <sys/types.h>
    #include <sys/stat.h>
#include <dirent.h>
#include <stddef.h>
    extern char *ctime();
    main()
{
       time_t last; struct stat st;
       for( stat(".", &st), last=st.st_mtime; ; sleep(2)){
            stat(".", &st);
            if(last != st.st_mtime)

{

DIR *dir_ptr; 
struct dirent *direntp;
dir_ptr = opendir(".");
while ((direntp = readdir(dir_ptr)) !=NULL)
  printf("%s\n",direntp->d_name);
       }

    }

}
пишет:
1.с: в функции 'main':
1.c:19: несовместимая неявная декларация внутренней функции 'printf'

как исправить?
K1rsan вне форума Ответить с цитированием
Старый 29.05.2010, 16:50   #5
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
#include <stdio.h>
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 29.05.2010, 18:20   #6
K1rsan
 
Регистрация: 28.05.2010
Сообщений: 7
По умолчанию

Greblin точняк)) работает!!! спасибо!
K1rsan вне форума Ответить с цитированием
Старый 29.05.2010, 18:33   #7
K1rsan
 
Регистрация: 28.05.2010
Сообщений: 7
По умолчанию

слушай у меня так, я создал папку "безымянная папка", потом переименовал ее в "1234"


а можно сделать чтоб писало:
создана папка: XXXX
удален файл: YYYY

или что нибудь в этом роде?)
K1rsan вне форума Ответить с цитированием
Старый 30.05.2010, 01:22   #8
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

а) запоминать список файлов и сравнивать
б) искать функции по отслеживанию изменений в файловой системе. Не уверен, что они есть в *nix, в винде есть
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.05.2010, 12:25   #9
K1rsan
 
Регистрация: 28.05.2010
Сообщений: 7
По умолчанию

спасибо огромное!!
K1rsan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текущее время (системное время ) Sirk0 Общие вопросы Delphi 27 07.03.2015 17:52
c++ в Linux (Межпроцессорный обмен в Linux) RusLotus Помощь студентам 0 13.10.2009 16:59
Время нажатия на кнопку мыши(Время реакции) Кирилл13 Помощь студентам 1 11.04.2009 19:41
Ос из linux ben95 Свободное общение 8 18.02.2009 05:43
Linux на VMware....... WinXP <-> Linux DMUTPUU Операционные системы общие вопросы 1 24.09.2008 12:03