2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Потоки и файловый дескриптор в C/C++
Сообщение09.07.2015, 14:19 


14/05/15
29
Файловый дескриптор - это целое неотрицательное число. Вот только чему соответствует дескриптор? Файлу или потоку?

 Профиль  
                  
 
 Re: Потоки и файловый дескриптор в C/C++
Сообщение09.07.2015, 15:10 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Строго говоря, ни тому, ни другому, но очень похоже на поток.
Согласно POSIX, описание открытого файла (open file description) может быть связано либо с дескриптором, либо с потоком и включает в себя собственно файл, текущее положение в файле (offset), права доступа и прочие флаги.
Фактически, open file description - это запись в некоторой общесистемной таблице, дескриптор - это запись в некоторой таблице, принадлежащей процессу, каждому дескриптору соответствует некоторое open file description, поток - это структура, включающая в себя дескриптор и какие-то флаги, например, тип буферизации.

 Профиль  
                  
 
 Re: Потоки и файловый дескриптор в C/C++
Сообщение09.07.2015, 16:21 


14/05/15
29
Xaositect
Получается, когда мы обращаемся к потоку, то поток через дескриптор понимает с каким файлом мы работаем?

 Профиль  
                  
 
 Re: Потоки и файловый дескриптор в C/C++
Сообщение09.07.2015, 16:37 
Заслуженный участник


16/02/13
4105
Владивосток
Там, помнится, очень накручено. Система, Цэ, да ещё ++ поверх всего этого. Поток может вообще работать со строкой. Один из вариантов — файловый поток. Он, да, хранит где-то в себе дескриптор файла, по которому операционная система определяет файл.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group