Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Вниз

OpenFile   Найти похожие ветки 

 
R4D][   (2003-07-07 12:01) [0]

Насколько я знаю, большинство OPEN функций используются для межпроцессной связи(пример: OpenMutex, OpenFileMapping etc). Но какой смысл функции OpenFile если в ее параметрах нет hProccess??? То есть в системе могут быть открыты 10 фаилов с одним и тем ж именем, поэтому по имени нельзя однозначно идентифицировать объект ядра. Я хочу спросить openfile имеет смысл только для "своего" процесса?


 
MBo   (2003-07-07 12:03) [1]

This function is provided for compatibility with 16-bit versions of Windows
Win32-based applications should use the CreateFile function.


 
R4D][   (2003-07-07 13:29) [2]

А далее указана причина почему - "In particular, the OpenFile function cannot open a named pipe". Но фаилы-то она открывает...


 
Cobalt   (2003-07-07 15:45) [3]

>R4D][ (07.07.03 12:01)
В общем случае - Да, только для своего процесса.
Понимаешь ли, тут такая вещь - ведь имя-то у файла на самом деле вместе с путем к нему - то есть, в общем же случае - уникально.

>какой смысл функции OpenFile если в ее параметрах нет hProccess???
вот эту фразу поясни, плиз. что за "hProccess?!!!"


 
Игорь Шевченко   (2003-07-07 15:50) [4]

У OpenFileMapping тоже нет hProcess - и что ? :) Сдается мне, что ни у одной из Open-функций hProcess нету...


 
R4D][   (2003-07-07 18:30) [5]

hProcess - это индификатор процесса.
А то, что у OpenFileMapping нет hProcess - это значит, что в системе может быть только один объект ядра FileMapping и идентифицируется он по имени lpName, которое однозначно определяет объект. Загвоздка-то в том, что в системе может быть открыто, например, 10 фаилов с именем "C:\1.txt", поэтому имя фаила однозначно не идентифицирует объект.


 
MBo   (2003-07-08 06:12) [6]

>hProcess - это индификатор процесса
Нет, ты путаешь ID процесса (уникальный) и его дескриптор, хэндл, который в каждом процессе разный


 
R4D][   (2003-07-08 13:35) [7]

Ну на самом деле я это и имел в виду, просто опечатался :)


 
MBo   (2003-07-08 13:43) [8]

Все равно, никакие Open-функции не требуют и не нуждаются ни в дескрипторах, ни в идентификаторах процесса, достаточно имени.


 
R4D][   (2003-07-09 13:28) [9]

Хорошо, возьмем пример - я открываю фаил(CreateFile), далее в своей программе использую OpenFile для "открытия" ранее открытого фаила(увеличивую счетчик у старого объекта ядра, созданного createfile"ом) - существует ли гарантия того, что я получу хэндл именно нужного мне фаила. Представим, что приложение "Блокнот" открыло этот же фаил между вызовами createfile и openfile(или до вызова createfile).


 
Verg   (2003-07-09 14:38) [10]


> Хорошо, возьмем пример - я открываю фаил(CreateFile), далее
> в своей программе использую OpenFile для "открытия" ранее
> открытого фаила(увеличивую счетчик у старого объекта ядра,
> созданного createfile"ом) - существует ли гарантия того,


Имя файла - это не имя объекта ядра. Поэтому применив OpenFile ты создаешь просто еще один объект ядра - хэндл файла. Поэтому никакого увеличения счетчика у "старого" не будет. Для этого, по-моему, надо применить DuplicateHandle к старому хэндлу. Точно не помню.


 
R4D][   (2003-07-09 18:24) [11]

DuplicateHandle - это, конечно, хорошо, но проблемы с OpenFile не решает. Из того, что ты сказал - OpenFile - не ОТКРЫВАЕТ(увеличивает счетчик и возвращает хэндл), а СОЗДАЕТ(создает новый объект ядра, увеличивает у него счетчик и возвращает хэндл) новый объект ядра. Мне не верится :) подтвердите кто-нибудь еще для верности.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
14-71851
DeMoN-777
2003-09-01 13:41
2003.09.22
re: По поводу структуры БД


14-71891
TGrigory
2003-08-18 20:09
2003.09.22
На игле


1-71656
TroianOFF
2003-09-08 15:48
2003.09.22
Плавное появление формы


14-71859
Anatoly Podgoretsky
2003-08-31 00:43
2003.09.22
Инструкция к


9-71459
[Baradoo]
2003-03-20 22:48
2003.09.22
Налет хакеров на сервера от hotbox и mail





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский