Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 234
от 14.04.2003, 20:40

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 697
Отправлено ответов: 1526
Активность: 218.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Avl2k
Статус: Опытный
Общий рейтинг: 122.24
[Подробней >>]
Morgion
Статус: Начальный
Общий рейтинг: 118.18
[Подробней >>]
K0dMaster
Статус: Доверительный
Общий рейтинг: 125
[Подробней >>]
 
VicSimon
Статус: Доверительный
Общий рейтинг: 102.92
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 689. Можно ли какнить отследить: удаление, создание, перемещение, переименование каких-либо файлов и ката... (ответов: 1)
Вопрос № 691. Посоветуйте ссылочку на компилятор С. Просто С. Если есть разновидности,существенно усложняющие жизн... (ответов: 2)
Вопрос № 692. Здравствуйте! Подскажите пожалуйста толковый док по программированию модема (СОМ-порт) под ДОС. Если... (ответов: 1)

Вопросов: 3, ответов: 4


 Вопрос № 689

Можно ли какнить отследить: удаление, создание, перемещение, переименование каких-либо файлов и каталогов?
если можно, то напишите какойнибуть примерчик, или скажите где можно взять инфу поэнтому делу.
заранее блогодарен.
Toha.



Вопрос отправлен: 10.04.2003, 21:53
Отправитель: Toha

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Здравствуйте, Toha!
В Windows для этого можно использовать функции FindFirstChangeNotification, FindNextChangeNotification и FindCloseChangeNotification. Схема такая:
1. Подписываетесь на нужные изменения с помощью функции FindFirstChangeNotification, которая возвращает некий handle.
2. С помощью функций ожидания (например, WaitForSingleObject) ждете получения нотификации для указанного handle.
3. Если нужно продолжать мониторинг, вызываете FindNextChangeNotification и переходите к п.2. Иначе вызываете FindCloseChangeNotification и выходите.
В приложении см. пример из MSDN.
С уважением, Avl2k.
Monitoring Changes in a Directory or Directory Tree
The following example monitors the directory tree starting at C: for directory name changes. It also monitors the C:WINDOWS directory for file name changes.
The example uses the FindFirstChangeNotification function to create two notification handles and the WaitForMultipleObjects function to wait on the handles. Whenever a directory is created or deleted in the tree starting at C: , the example updates the entire directory tree. Whenever a file is created or deleted in the C:WINDOWS directory, the example refreshes the WINDOWS directory. The FindNextChangeNotification function restarts the change notification each time the example processes a change.
DWORD dwWaitStatus;
HANDLE dwChangeHandles[2];

// Watch the C:WINDOWS directory for file creation and
// deletion.

dwChangeHandles[0] = FindFirstChangeNotification(
"C:\WINDOWS", // directory to watch
FALSE, // do not watch the subtree
FILE_NOTIFY_CHANGE_FILE_NAME); // watch file name changes

if (dwChangeHandles[0] == INVALID_HANDLE_VALUE)
ExitProcess(GetLastError());

// Watch the C: subtree for directory creation and
// deletion.

dwChangeHandles[1] = FindFirstChangeNotification(
"C:\", // directory to watch
TRUE, // watch the subtree
FILE_NOTIFY_CHANGE_DIR_NAME); // watch dir. name changes

if (dwChangeHandles[1] == INVALID_HANDLE_VALUE)
ExitProcess(GetLastError());

// Change notification is set. Now wait on both notification
// handles and refresh accordingly.

while (TRUE)
{
// Wait for notification.
dwWaitStatus = WaitForMultipleObjects(2, dwChangeHandles,
FALSE, INFINITE);

switch (dwWaitStatus)
{
case WAIT_OBJECT_0:

// A file was created or deleted in C:WINDOWS.
// Refresh this directory and restart the
// change notification. RefreshDirectory is an
// application-defined function.

RefreshDirectory("C:\WINDOWS")
if ( FindNextChangeNotification(
dwChangeHandles[0]) == FALSE )
ExitProcess(GetLastError());
break;

case WAIT_OBJECT_0 + 1:

// A directory was created or deleted in C:.
// Refresh the directory tree and restart the
// change notification. RefreshTree is an
// application-defined function.

RefreshTree("C:\");
if (FindNextChangeNotification(
dwChangeHandles[1]) == FALSE)
ExitProcess(GetLastError());
break;

default:
ExitProcess(GetLastError());
}
}


Ответ отправлен: 11.04.2003, 11:41
Отправитель: Avl2k


 Вопрос № 691

Посоветуйте ссылочку на компилятор С.
Просто С.
Если есть разновидности,существенно усложняющие жизнь,
проведите маленький экскурс.
Спасибо
Ps
есть какойто, но файлы ни куда не складываються.
искал шже можно посмотреть куда компелировать в файл или в память не нашел.
Может я порядок компиляции нарушаю7
Есть какой либо "законный" порядок?



Вопрос отправлен: 11.04.2003, 00:43
Отправитель: Pupsik (pupcik@bk.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Morgion

Доброе время суток, Pupsik!
Могу посоветовать поискать lcc- хороший компилятор C, но немного глючный редактор- им можно не пользоваться. Или DevC++(devcpp)- на основе mingw- вроде порт линуксового компилятора- а он славится хорошей оптимизацией кода (компилил им Lame- так он процентов на 10-30 быстрее работал чем после компиляцией VC). Он находится примерно по такому адресу :) -bloodshed.org или bloowshed.net. А ещё- поищи в яндексе словосочетание programmer tools- найдётся один очень хороший сайтик- там линки на это добро есть. Сайтик так и называется programmertools.что-то, точно опять не помню :(. Поиду к доктору- мозг апгрейдить 8).

Ответ отправлен: 11.04.2003, 13:09
Отправитель: Morgion


Отвечает K0dMaster

Здравствуйте, Pupsik!
http://www.cs.virginia.edu/~lcc-win32/ гляди здесь очень хорошая вешь мне очень нравится %))

Ответ отправлен: 11.04.2003, 09:21
Отправитель: K0dMaster


 Вопрос № 692

Здравствуйте!
Подскажите пожалуйста толковый док по программированию модема (СОМ-порт) под ДОС.
Если что, можно слать на мыло.
Спасибо.



Вопрос отправлен: 11.04.2003, 08:49
Отправитель: Evgeny (bbroth@pochtamt.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает VicSimon

Приветствую Вас, Evgeny!
В серии БСП (Библиотека системмного программиста) есть книга "Программирование модемов" (Том 4). Рекомендую. Взять можно здесь.

Ответ отправлен: 11.04.2003, 09:57
Отправитель: VicSimon



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (36)
C / C++ (28)
Perl (6)
Delphi (16)
Pascal (22)
Basic / VBA (10)
Java / JavaScript (9)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (28)
Windows NT/2000/XP (21)
"Железо" (24)
Поиск информации (12)
Администратору
Windows NT/2000/XP (10)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (5)
Трудовое право (5)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное