Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
2355 / 1773 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
1

Дескрипторы

19.03.2013, 18:38. Показов 2432. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задание:
Написать функцию потока, которая в качестве входного параметра принимает дескриптор открытого текстового файла. Функция должна осуществлять символьный вывод в файл номер процесса, номер потока и системное время. Предусмотреть достаточное количество итерации записи в файл с одной функции потока. Открытие файла следует выполнять до создания потока, используя функцию FileOpen (), а после завершения работы с файлом необходимо вызвать функцию FileClose ().

С дескрипторами вобше никогда не был знаком и вобше не знаю что это такое. Подскажите с чего начать и как сделать эту задачу. Наперед спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2013, 18:38
Ответы с готовыми решениями:

Наследуемые дескрипторы
Скажите пожалуйста, дескриптор полученный через "GetStdHandle" наследуемым: STARTUPINFO strInfo;...

Получить дескрипторы всех окон в системе
Как получить дескрипторы всех окон в системе

Как найти все дескрипторы окон в системе?
как найти все дескрипторы окон в системе? уже пол часа штурмую гугл - без результатно

Могут ли у процессов с разными идентификаторами быть одинаковые дескрипторы?
Пишу программу.. и появились вот такие вопросы.. могут ли у процессов с разными идентификаторами...

3
Невнимательный
2683 / 1101 / 345
Регистрация: 08.02.2013
Сообщений: 6,270
Записей в блоге: 2
20.03.2013, 21:36 2
FileClose
Вообще не смог найти
FileOpen Object

The FileOpen object supports the File Open common dialog box.

Remarks
To create a FileOpen object and get a pointer to its IShellBrowser interface, call the QueryService method with the guidService parameter of QueryService set to SID_SCommDlgBrowser and the riid parameter of QueryService set to IID_IShellBrowser. You can then interact with the FileOpen object through its IShellBrowser interface.
Есть это
C
1
2
3
4
5
6
7
8
9
HANDLE CreateFile(
  LPCTSTR lpFileName,
  DWORD dwDesiredAccess,
  DWORD dwShareMode,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  DWORD dwCreationDisposition,
  DWORD dwFlagsAndAttributes,
  HANDLE hTemplateFile
);
Parameters
lpFileName
[in] A pointer to a null-terminated string that specifies the name of an object to create or open.
In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path. For more information, see Naming a File.

To create a file stream, specify the name of the file, a colon, and then the name of the stream. For more information, see File Streams.
0
2355 / 1773 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
20.03.2013, 23:38  [ТС] 3
я вот точно не знаю, но вроде ф-ии открытыя и закрывания файлов надо вручную написать, темболее если вы такого не нашли
Меня больше интересует насчёт
Написать функцию потока, которая в качестве входного параметра принимает дескриптор открытого текстового файла. Функция должна осуществлять символьный вывод в файл номер процесса, номер потока и системное время. Предусмотреть достаточное количество итерации записи в файл с одной функции потока.
вот тут я вобше не знаю что это такое. с потоками и дескрипторами и т.д. никогда не сталкивался, нормальных примеров найти не удалось, даже не знаю что делать
может кто то поможет ?
0
Невнимательный
2683 / 1101 / 345
Регистрация: 08.02.2013
Сообщений: 6,270
Записей в блоге: 2
21.03.2013, 13:30 4
я что-то тоже сначала понял как
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <windows.h>
   #include <stdio.h>
 
   void main( )
   {
      HANDLE hFile, hStream;
      DWORD dwRet;
 
      hFile   = CreateFile( "testfile",
                            GENERIC_WRITE,
                            FILE_SHARE_WRITE,
                            NULL,
                            OPEN_ALWAYS,
                            0,
                            NULL );
      if( hFile == INVALID_HANDLE_VALUE )
         printf( "Cannot open testfile\n" );
      else
          WriteFile( hFile, "This is testfile", 16, &dwRet, NULL );
 
      hStream = CreateFile( "testfile:stream",
                            GENERIC_WRITE,
                            FILE_SHARE_WRITE,
                            NULL,
                            OPEN_ALWAYS,
                            0,
                            NULL );
      if( hStream == INVALID_HANDLE_VALUE )
         printf( "Cannot open testfile:stream\n" );
      else
         WriteFile(hStream, 
                   "This is testfile:stream", 23, &dwRet, NULL);
   }
The file size obtained in a directory listing is 16, because you are looking only at the file testfile, and therefore entering type testfile at the command line produces the following output:

"This is testfile"

После того как перечитал думаю речь шла о трэдах
C
1
2
3
4
5
6
7
8
HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  SIZE_T dwStackSize,
  LPTHREAD_START_ROUTINE lpStartAddress,
  LPVOID lpParameter,
  DWORD dwCreationFlags,
  LPDWORD lpThreadId
);
LPVOID lpParameter должен быть HANDLE полученный с помощью CreateFile

и в процедуре обработки сообщений окну доолжно быть что-то вроде
C
1
2
case WM_THREADFINISH://
    CloseHandle( ... );
Добавлено через 7 минут
обычно запускается просто как
C
1
2
3
4
5
6
7
    DWORD       dTmp;
CloseHandle(CreateThread(NULL,  // default security attributes
            0,  // stack size
            func,   // thread function 
            u,  // argument to thread function 
            0,  // use default creation flags 
            &dTmp));
0
21.03.2013, 13:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2013, 13:30
Помогаю со студенческими работами здесь

Что такое дескрипторы? дескрипторы устройсв?
Никак не могу понять и найти нормального определения. Что такое дескрипторы? Что такое дескрипторы...

Дескрипторы
Здравствуйте! Нужен совет для усвоения полученной информации. В процессе самообучения я понял,...

Дескрипторы жрут ОП
Как выяснить, что выделяет и не освобождает дескрипторы, если они принадлежат System? Proccess...

Дескрипторы, WINAPI
Здравствуйте! Писал всегда на C#, описывая внешнюю часть и никуда особо не лез, пользуясь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru